jQuery为加载时聚集在一起的元素设置动画
得到了一个基于Google Wave的页面http://wave.google.com/maintenance/index.html 但是,云不是从左到右,而是从右到左,所以我将所有引用从“左”切换到“右”:jQuery为加载时聚集在一起的元素设置动画,jquery,jquery-animate,Jquery,Jquery Animate,得到了一个基于Google Wave的页面http://wave.google.com/maintenance/index.html 但是,云不是从左到右,而是从右到左,所以我将所有引用从“左”切换到“右”: #cloud position: absolute; left: 5%; top: 15px; z-index: 2; width: 120px; height: 91px; background-image: url(../images/cloud.gif); background-r
#cloud
position: absolute;
left: 5%;
top: 15px;
z-index: 2;
width: 120px;
height: 91px;
background-image: url(../images/cloud.gif);
background-repeat: no-repeat;
变成:
#cloud1
position: absolute;
right: 60%;
top: 115px;
z-index: 2;
width: 150px;
height: 163px;
background-repeat: no-repeat;
JS调用是:
function cloud1Move()
{
if (!cloud1Moved)
{
$("#cloud1").css("right", $("#cloud1").offset().right)
}
$("#cloud1")
.animate(
{
right: $("#sky").width()
},
cloud1Moved ? 12000 : 10000,
"linear",
function()
{
$(this).css("right", -parseInt($(this).css("width")))
cloud1Moved = true;
cloud1Move();
}
);
}
这在FF中起作用,但Chrome/Safari似乎将所有元素集中在屏幕的右侧,然后从右向左设置动画。一旦他们离开左边的屏幕,他们就会按预期工作。只是初始负载不是我所期望的
如果我只使用left->right,那么它们将在屏幕上正确地呈现在适当的位置,并按照预期的方式工作
关于我正在做什么的任何见解都可能在JS调用中不正确
谢谢,
罗伯嗯$cloud1.offset不返回具有属性right的对象,只返回left和top 更好地使用:
$("#cloud1").css("left", $("#cloud1").offset().left)
在你的css中也是如此
left: 40%;
作为一个实验,我在上面运行了一个本地版本的GoogleWave,并将呼叫从左改右。我能够在屏幕右侧复制bucnhing,因此问题似乎在于CSS元素的加载定位(FF除外)或JS中的开始动画的实现。