我希望获得最有效的方式来制作最新的新闻自动收录器。
我有一个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}}中消失,因此效果有点混乱。
如果有人可以提出一些改变来帮助产生我需要的效果,那将非常有用。
由于
答案 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);
请参阅:
答案 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/