间隔&的小div推子播放/暂停功能

时间:2012-09-27 19:49:44

标签: jquery fadein setinterval fadeout css-selectors

我正在玩一个小推子。 它适用于单个子元素,但元素中的元素不是: http://jsfiddle.net/cz9a2/

应该是:

<div class="fadein">
<div class="fadd"><img src="http://farm3.static.flickr.com/2610/4148988872_990b6da667.jpg"></div>
<div class="fadd"><img src="http://farm3.static.flickr.com/2597/4121218611_040cd7b3f2.jpg"></div>
<div class="fadd"><img src="http://farm3.static.flickr.com/2531/4121218751_ac8bf49d5d.jpg"></div>
</div>

结果:(用萤火虫检查)

<div class="fadein">
<div class="fadd" style="display: block;"></div>
<div class="fadd" style="display: none;"></div>
<div class="fadd" style="opacity: 0.00000555164;"></div>
<img src="http://farm3.static.flickr.com/2610/4148988872_990b6da667.jpg" style="opacity: 0.00000555164;">
<img src="http://farm3.static.flickr.com/2597/4121218611_040cd7b3f2.jpg" style="opacity: 0.000298526;">
<img src="http://farm3.static.flickr.com/2531/4121218751_ac8bf49d5d.jpg" style="opacity: 0.000298526;">
</div>

看来,第一个孩子不是在另一个div(fadd)之后淡化div(fadd)的正确方法......

1 个答案:

答案 0 :(得分:0)

我对函数进行了一些修改以使所有代码在间隔内执行,因此它会淡入和淡出正确的项目。

看看这个小提琴:http://jsfiddle.net/johnkoer/cz9a2/48/

 var pauseplay;

function startFader() {

    //Fade out the first visible item
    $x = $(".fadd:visible").fadeOut(1000);

    // Get the next sibling
    $next = $x.next();

    // if the next is not an element, go back to the first one
    if ($next.length == 0) $next = $(".fadd:first-child");

    // Fade the next one in
    $next.fadeIn(1000);
}

function stopFader() {
    window.clearInterval(pauseplay);
    console.log("stop");
}

$('.fadein .fadd:gt(0)').hide();

pauseplay = window.setInterval(startFader, 2000);


var $button = $('#toggler');
$button.toggle(function() {
    stopFader();
    $(this).toggleClass('playin pausin');
}, function() {

    $(this).toggleClass('pausin playin');

    pauseplay = window.setInterval(startFader, 2000);

});​