我正在为推荐书制作一个自动收录器,除了我试图在页面加载时尝试使用setTimout淡化自动收报机,同时使用setTimout停止第一项显示时页面正在加载,但不是像我预期的那样轻轻地褪色,而是突然陷入了原位。
有人能纠正我这样做的方式吗?是否有更好的方法让它淡入?
请注意,以下内容将包含在文档就绪函数中,并且在随附的CSS中,容器最初设置为display:none。
function bangingTicker(container,element) {
var tickContainer = $(container);
setTimeout(function(){
tickContainer.fadeIn(1000);
},6200);
function tick(){
var tickElem = tickContainer.children(element);
tickElem.eq(1).siblings().animate({
opacity: 0
},400, function() {
tickContainer.stop(true,true).delay(10).animate({
'margin-top': 120
},0,function() {
tickContainer.delay(100).animate({
'margin-top': 20
},8000);
});
tickElem.first().appendTo(tickContainer);
tickElem.eq(1).delay(200).animate({
opacity: 1
},400);
});
}
setInterval(function(){ tick () }, 6000);
}
bangingTicker('#testi_ticker','li');
答案 0 :(得分:0)
试试这个jsfiddle。这是你需要的吗?
答案 1 :(得分:0)
今天工作了一段时间之后我已经按照我想要的方式工作了,虽然我仍然觉得代码可以改进 - 我希望尽可能少依赖css / html但是它工作,看起来也很棒。
看看这个小提琴。 http://jsfiddle.net/pushplaybang/aFSJk/3/
摘要是:
将setTimout全部放在一起
同时运行tick函数设置setInterval函数
这会在动画开始前停止延迟。
将回调中的整个tick函数包装到fadeIn