0

私はこのスクリプトを持っています:

<div style="position:relative ;overflow:hidden ; height:195px;">
    <div style="position:absolute" class="scroll">
    {foreach from=$announce_list item=a}
        <div>
        <img src="imgsize.php?w=214&h=100&img=../uploads/announce/{$a.--------}.jpg"  />
        <h4 dir="rtl" style="padding-top:10px; padding-bottom:5px;">{$a.------}</h4>
        <p dir="rtl" style="text-align:justify ;line-height:17px;">{$a.---------|truncate:"300":"..." }</p>
        </div>
    {/foreach}
    </div>
</div>
{literal}
    <script>
        $(function(){
            function change_announce()
            {
                console.log('asdasdasd');
                var Scroll = $('.scroll') ;
                Scroll.children('div:first').animate({marginTop:'-195px' } , 1000 , 
                function(){
                    Scroll.children('div:first').appendTo(Scroll).css('marginTop' , '0px' ).fadeIn(2000); 
                }
                ); 

            }
            setInterval(change_announce , 3000) ;
        });
    </script>
{/literal}

このデモンストレーションのサイトwww.mahestan.ac.irの右ペインにあるこのページでは、2 番目の div が非表示になった後、アニメーションが完全には実行されません。次の div でアニメーションが完了しません。突然ジャンプが発生します。

4

1 に答える 1

1

更新:コードをさらに調べたところ、小さなジャンプの理由がわかりました。アニメーションでは、 div-195pxの高さの位置まで DIV をスクロールしています。.scroll

ただし、考慮する必要がpadding-top:10pxあります。padding-bottom:5pxこのため、の代わりに-15pxの合計の数に追加する必要があります。-210px-195px

この行を変更します。

Scroll.children('div:first').animate({marginTop:'-195px' } , 1000 ,

に:

Scroll.children('div:first').animate({marginTop:'-210px' } , 1000,
于 2009-06-09T21:23:05.430 に答える