褪色的最新消息代号

时间:2012-11-09 14:27:28

标签: javascript jquery html

我希望获得最有效的方式来制作最新的新闻自动收录器。

我有一个ul,它可以容纳任意数量的li以及我需要循环通过它们逐渐消失,保持5秒然后淡出它,一个li {1}}一次。该列表显示的li高度为40px,其显示的井也是40px,其中overflow: hidden产生了所需的效果。如果光标悬停在li上并显示它时,也可以将function tickOut(){ $('#ticker li:first').animate({'opacity':0}, 1000, function () { $(this).appendTo($('#ticker')).css('opacity', 1); }); } setInterval(function(){ tickOut () }, 5500); 保持在适当的位置。

我知道有广泛使用的jQuery自动收报机插件(旧的BBC风格)但是我试图使用它并且它看起来如此庞大以至于我需要的简单性并且它对我使用的样式造成严重破坏。

到目前为止我一直在使用它:

li

但它实际上并没有在下一个{{1}}中消失,因此效果有点混乱。

如果有人可以提出一些改变来帮助产生我需要的效果,那将非常有用。

由于

2 个答案:

答案 0 :(得分:3)

hide()并在元素成为列表顶部后调用fadein()

function tickOut(){
        $('#ticker li:first').animate({'opacity':0}, 1000, function () {
            $(this).appendTo($('#ticker'))
            $('#ticker li:first').hide()
            $('#ticker li:first').fadeIn(1000)
              $('#ticker li:not(:first)').css('opacity', '1')
        });
    }

setInterval(function(){ tickOut () }, 5500);

请参阅:

http://codepen.io/anon/pen/lHdGb

答案 1 :(得分:1)

我愿意这样做:

function tickOut(){
    $('#ticker li:first').animate({'opacity':0}, 1000, function () { 
            $(this).appendTo($('#ticker')).css('opacity', 1); });
    }
var interval;
$(function() {
    interval = setInterval(function(){ tickOut () }, 5500);
    $('#ticker').hover(function() {
             if(interval)
                 clearInterval(interval);
             $('#ticker li:first').stop();   
             $('#ticker li:first').css('opacity', 1).stop();  
         }, function(){
             interval = setInterval(function(){ tickOut () }, 5500);
             });
});

请参阅$('#ticker').hover清除间隔并停止动画,并在鼠标进入opacity时将UL返回到1(当LI内只有一些特殊元素时,可以更改为{1}} }是在鼠标下)并在它离开UL后再次启动它。演示:http://jsfiddle.net/KFyzq/6/