jQuery自定义垂直滚动UL bug

时间:2013-11-30 22:23:46

标签: javascript jquery

我有这个结构:

<div id="wrapper">
<ul>
     <li class="entry">
       <div class="t_time">16:40</div>
       <div class="t_label">Some text</div>
     </li>
     <li class="entry">
       <div class="t_time">16:40</div>
       <div class="t_label">Some text</div>
     </li>
     <li class="entry">
       <div class="t_time">16:40</div>
       <div class="t_label">Some text</div>
     </li>
     <li class="entry">
       <div class="t_time">16:40</div>
       <div class="t_label">Some text</div>
     </li>
         <li class="entry">
       <div class="t_time">16:40</div>
       <div class="t_label">Some text</div>
     </li>
      <li class="entry">
       <div class="t_time">16:40</div>
       <div class="t_label">Some text</div>
     </li>
   </ul>
</div>

和这个JS使它垂直滑动:

    function scroller(){


        $('#wrapper ul').animate(
        { 
            top: '-=' + $('#wrapper ul li:last').height()
        },
        3000,
        'linear',
        function(){
            var offset = $('#wrapper ul li:last').offset().top;                
            console.log(offset);
            if( offset <= 640){
                 $('#wrapper ul').css("top", 0);
                $('#wrapper ul li:last').after($('#wrapper ul li:first').detach());
            }
        }
    );
 }

 setInterval(scroller ,3000);

问题是,当我试图摆脱列表类型的项目符号时,会发生一些错误,它将不再起作用了!

这是一个小提琴:

http://jsfiddle.net/3v4Ab/2/

如果你在CSS中添加一行将删除列表样式的行,例如:#wrapper ul{list-style:none;}它将不再起作用!任何想法?

1 个答案:

答案 0 :(得分:2)

我只是experimented with it,(我在小提琴中更改了一些超时设置)。看起来如果列表元素没有指定的高度,它将导致您在jQuery动画中出现问题。

将它添加到样式表中,它可以正常工作:

#wrapper ul li {height:50px; list-style:none;}