~whzhang-kylin/ubuntukylin-homepage/trunk

« back to all changes in this revision

Viewing changes to js/jquery.slider~~~.js

  • Committer: whzhang-kylin
  • Date: 2013-04-05 09:48:30 UTC
  • Revision ID: fly2high@126.com-20130405094830-zimuf02judoaqh94
initial upload

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
(function(){
 
2
    var $root = $('#slideshow'),
 
3
        root_w = $root.width();
 
4
    var p = $root.find('> div.img > span'),
 
5
        n = p.children().length;
 
6
        p.children().eq(0).clone().appendTo(p);
 
7
                        
 
8
    function onoff(on, off) {
 
9
        (on !== -1) && btns.eq(on).addClass('on');
 
10
        (off !== -1) && btns.eq(off).removeClass('on');
 
11
    }
 
12
    function dgo(n, comp) {
 
13
        // hack for slast
 
14
        var idx = n > max ? 0 : n;
 
15
        onoff(idx, cur);
 
16
        cur = idx;
 
17
        p.stop().animate({left: -1 * root_w * n}, {duration: dur, complete: comp});
 
18
                                if(idx == 0 ){p.children().eq(n-1).clone().appendTo('.pattern');}else{$('.pattern').empty()};
 
19
                                //p.children().eq(n-1).clone().appendTo('.pattern');
 
20
    }
 
21
    // next if dir > 0
 
22
    // prev if dir < 0
 
23
    // reinit if dir == 0
 
24
    // slast -> 如果播放完最后1张,要如何处理
 
25
    //    true 平滑切换到第1张
 
26
    var cur = 0,
 
27
        max = n - 1,
 
28
        pt = 0,
 
29
        stay = 5 * 1000, /* ms */
 
30
        dur = .6 * 1000, /* ms */
 
31
        btns;
 
32
    function go(dir, slast) {
 
33
        pt = +new Date();
 
34
        if (dir === 0) {
 
35
            onoff(cur, -1);
 
36
            p.css({left: -1 * root_w * cur});
 
37
            return;
 
38
        }
 
39
 
 
40
        var t;
 
41
        if (dir > 0) {
 
42
            t = cur + 1;
 
43
            if (t > max && !slast) {
 
44
                t = 0;
 
45
            }
 
46
            if (t <= max) {
 
47
                return dgo(t);
 
48
            }
 
49
            return dgo(t, function(){
 
50
                p.css({left: 0});
 
51
            });
 
52
        } else {
 
53
            t = cur - 1;
 
54
            if (t < 0) {
 
55
                t = max;
 
56
                p.css({left: -1 * root_w * (max + 1)});
 
57
                return dgo(t);
 
58
            } else {
 
59
                return dgo(t);
 
60
            }
 
61
        }
 
62
    }
 
63
    btns = $((new Array(n + 1)).join('<i></i>'))
 
64
        .each(function(idx, el) {
 
65
            $(el).data({idx: idx});
 
66
        });
 
67
    var pn_btn = $('<span class="btnLeft"><span></span></span><div class="btnRight"><div></div></div>');
 
68
//      var btn_left = $('<div class="btnLeft"></div>');
 
69
    $('<div class="btns"/ >')
 
70
        .append( $('<b/>').append(btns).delegate('div', 'click', function(ev) { dgo($(this).data('idx'));}).css({width: n * 20, marginLeft: -10 * n}))
 
71
        .delegate('span', 'click', function(ev) {go($(this).is('.prev') ? -1 : 1, true);})
 
72
        .append(pn_btn)
 
73
//              .append(btn_left)
 
74
        .appendTo($root);
 
75
//      var br = $root.find('> div.btnRight');
 
76
//      br.onclick=function(){alert('abcd')};
 
77
    go(1);
 
78
 
 
79
    // 自动播放
 
80
    var ie6 = $.browser.msie && $.browser.version < '7.0';
 
81
    $root.hover(function(ev) { 
 
82
        // $root[(ev.type == 'mouseenter' ? 'add' : 'remove') + 'Class']('show-hover');
 
83
 
 
84
    });
 
85
    if ($root.attr('rel') == 'auto-play') {
 
86
       var si = setInterval(function(){
 
87
            var now = +new Date();
 
88
            if (now - pt < stay) {
 
89
                return;
 
90
            }
 
91
            go(1, true);
 
92
        }, 5000);
 
93
                         p.mouseover(function(){ clearInterval(si);})
 
94
                         p.mouseout(function(){
 
95
                                                si = setInterval(function(){
 
96
            var now = +new Date();
 
97
            if (now - pt < stay) {
 
98
                return;
 
99
            }
 
100
            go(1, true);
 
101
        }, 5000);})
 
102
    }
 
103
                //var wid = $(document.body).width();
 
104
                //var swid = (wid-500)/2;
 
105
                //var bwid = root_w * n;
 
106
                //$('#slideshow').css('width',500);$('#slideshow .img').css('width',500);
 
107
                //$('#slideshow .btns').css('left',swid)
 
108
                //$('.paging').css('width',500);$('.subpattern').css('right',0);
 
109
                //$('#slideshow .img span').css(({paddingLeft: swid }))
 
110
})();
 
 
b'\\ No newline at end of file'