0

これまでの私のコードは次のとおりです。

  function richardsSuperAmazingVerticalTextScroller(){


        $('#honor-roll ul').animate(
        { 
            top: '-=' + $('#honor-roll ul li:last').height()
        },
        1000,
        'linear',
        function(){
            var offset = $('#honor-roll ul li:last').offset().top;                
            console.log(offset);
            if( offset <= 640){
                 $('#honor-roll ul li').css("margin", 0);
                 $('#honor-roll ul li:last').after($('#honor-roll ul li:first').detach());
            }
        }
    );
    }
    $(document).ready(function(){
        setInterval('richardsSuperAmazingVerticalTextScroller()',1000)
    });

jsFiddle では完全に動作しますが、このバージョンでは失敗しますhttp://barkins.com/test.html

これはフィドルの同じコードですhttp://jsfiddle.net/qmFD3/6/

誰でも問題を見つけることができますか? ありがとうございました

4

3 に答える 3

2

したがって、同じコードではありません。特に、あなたの jsFiddle には

if( offset <= 640){
    $('#honor-roll ul').css("top", 0);
    $('#honor-roll ul li:last').after($('#honor-roll ul li:first').detach());
}

あなたのサイトのコードには

if( offset <= 640){
    $('#honor-roll ul li').css("margin", 0);
    $('#honor-roll ul li:last').after($('#honor-roll ul li:first').detach());
}

それを変更すると、問題が解決します。

補足として、あなたのsetTimeout. 次のように変更できます。

setInterval(richardsSuperAmazingVerticalTextScroller,1000)
于 2013-04-24T14:56:41.710 に答える
0

多分それはすべてを置くことです

 <script>

body 要素の内部

于 2013-04-24T14:56:58.793 に答える