我有这个JavaScript / jQuery动画功能在这里,我希望它使用3000
为每个window.onload = function(){}
循环,但由于某种原因它不起作用。我认为可以语法/基础错误,因为我是javascript的新手,但如果我应该使用不同的方法,请告诉我。这是我的代码:
function animTile(){
$(".main-content").delay(3000).animate({
top: "100%"
});
$(".secondary-content").delay(3000).animate({
top: "0"
});
}
window.onload = function(){
animTile(); setInterval(animTile, 3000);
}
也许这也有帮助。这是我的CSS代码:
#wrap {
display: block;
height: 328px;
width: 568px;
overflow: hidden;
}
#wrap .main-content {
display: block;
height: 100%;
width: 100%;
position: absolute;
top: 0%;
}
#wrap .secondary-content {
display: block;
height: 100%;
width: 100%;
position: absolute;
top: 100%;
}
答案 0 :(得分:1)
尝试这样的事情:
function animTile(){
$(".main-content").delay(3000).animate({
top: "100%"
});
$(".secondary-content").delay(3000).animate({
top: "0"
});
animTileTwo();
}
function animTileTwo(){
$(".main-content").delay(3000).animate({
top: "0"
});
$(".secondary-content").delay(3000).animate({
top: "100%"
});
}
window.onload=function(){
setInterval("animTile()", 3000);
}
答案 1 :(得分:0)
试试这个:
function animTile(){
$(".main-content").animate({
top: "100%"
}, 1000);
$(".secondary-content").animate({
top: "0"
}, 1000);
setTimeout('animTile()', 3000);
}
window.onload = function(){
animTile();
}
答案 2 :(得分:0)
为什么你使用'延迟'功能?你想要什么? 你说你想要一些循环动画,但是在你的代码中,我只为每个元素找到了一个状态。我的意思是,如果你想要一个循环动画,你应该将一些属性设置为值A,然后将其设置为值B,然后将其设置回值A ...这是一个循环。
所以,我想你想把'top'属性设置为'100%',然后3000 ms后将其设置为0,然后3000 ms后将其设置为'100%'。是吗?
如果这是您想要的,请尝试以下代码:
function toggle() {
var elem = $('#id');
if (elem.css('top') == '700px') {
elem.animate({
top: "0"
});
} else {
elem.animate({
top: "700px"
});
}
}
toggle();
setInterval(toggle, 3000);