我要做的是为html元素的“top”位置设置动画,然后在函数运行后,重置样式并开始循环。
我当然不是专业人士。我确信有更好的方法可以做到这一点,而且我只能通过将我找到的各种“教程”拼凑在一起来实现这一目标。
我正在制作动画的元素包含在with overflow:hidden。
中这是迄今为止我能够获得的脚本:
$(function(){
function loop(n) {
if(n > 0)
{
setTimeout(function(){
$("#target").animate({'top': '-=44px' },"slow", loop(n-1));
}, 3000);
}
}
loop(15);
});
我想要的是在运行之后,我希望它重置#target元素的“top”属性,然后重新开始(无限制)。
非常感谢任何帮助,我意识到我可能从一开始就会出现这种错误,所以任何建议都会很棒!
谢谢!
编辑:整理一个jsFiddle以显示我到目前为止所获得的内容:http://jsfiddle.net/E7mTR/
答案 0 :(得分:0)
尝试
(function($) {
$(document).ready(function(){
$(function(){
function loop(n) {
if(n <= 0){
setTimeout(function(){
$(".wrapper ul").animate({'top': '0' },"fast", function(){
loop(15)
});
}, 300);
}else {
setTimeout(function(){
$(".wrapper ul").animate({'top': '-=44px' },"fast", function(){
loop(n-1)
});
}, 300);
}
}
loop(15);
});
});
})(jQuery);
演示:Fiddle
可以使用
之类的东西清理代码jQuery(function($){
var $ul = $(".wrapper ul");
function animate(n, top) {
$ul.delay(300).animate({'top': top },"fast", function(){
loop(n-1)
});
}
function loop(n){
if(n <= 0) {
animate(15, '0');
} else {
animate(n, '-=44px');
}
}
loop(15)
})
演示:Fiddle