JQuery Fade Ticker干净整洁

时间:2011-03-24 14:31:17

标签: jquery ticker

尝试使用我自己的自动收报机,并且已经没有JQuery知识了。元素应该淡出,然后下一个元素淡入。此时第一个元素淡出,而第二个和第三个元素一起淡入,它们没有循环。显然我错过了一些东西。

<script type="text/javascript">
var elem1 = $('#fader').children();
    $(elem1).hide();
    $(elem1).first().fadeIn(2000,function(){
        $(elem1).delay(4000);

        $(elem1).fadeOut(2000, function(){
            $(elem1).next().fadeIn(2000);

            });
            }); </script>

有什么想法吗?

非凡

2 个答案:

答案 0 :(得分:0)

我认为这是你的选择。 $(elem1)指的是$('#fader')的所有子项,因此$(elem1).next()最终将引用所有可能的“next”,在这种情况下,第一个和第二个元素具有“ next是“,分别是第二和第三个元素。

你想要做的是以某种方式跟踪哪个元素是当前显示的元素,然后在它的时间,淡出那个元素和下一个元素。

答案 1 :(得分:0)

好吧,我制作了一个简单的修补程序,滚动所有值并停止。也许这就是你正在寻找的东西,或者至少可以帮助你建立自己的东西。 ;) 这是HTML代码:

<div id="fader" style="width:100px; height:100px; background-color:blue;">
    <p>aaaaaaaaaaaa</p>
    <p>bbbbbbbbbbbb</p>
    <p>cccccccccccc</p>
    <p style="display:none;">dddddddddddd</p>
    <p style="display:none;">eeeeeeeeeeee</p>
    <p style="display:none;">ffffffffffff</p>
    <p style="display:none;">gggggggggggg</p>
</div>

脚本本身:

<script type="text/javascript">
$(document).ready(function()
{
    var timer = window.setInterval(function()
    {
        var elem1 = $('#fader').children(':visible:first');
        var elem2 = $('#fader').children(':visible:last');

        if( !$(elem2).next().is(':last') )
            clearInterval( timer );
        else
        {
            $(elem1).fadeOut(1500, function()
            {
                $(elem2).next().fadeIn(1500);
            });
        }
    }, 3000);
});
</script>
祝你好运! ; d