0

私自身のティッカーを試してみて、JQueryの知識が不足しています。要素はフェードアウトし、次の要素はフェードインすることになっています。現時点では、最初の要素はフェードアウトし、2番目と3番目の要素は一緒にフェードインし、ループはありません。明らかに私は何かを逃しました。

<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>

何か案は?

素晴らしい

4

2 に答える 2

0

あなたのセレクターだと思います。 $(elem1)は のすべての子を参照している$('#fader')ため$(elem1).next()、考えられるすべての「次の要素」を参照することになります。この場合、最初と 2 番目の要素には「次の要素」があり、それぞれ 2 番目と 3 番目の要素になります。

あなたがしたいことは、どの要素が現在表示されている要素であるかをどうにかして追跡し、その時間になったら、その要素をフェードアウトさせ、その要素の次の要素をフェードインさせることです.

于 2011-03-24T14:38:12.167 に答える
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

于 2011-03-24T16:50:43.780 に答える