function moveit() {
var newTop = Math.floor(Math.random()*350);
var newLeft = Math.floor(Math.random()*1024);
var newDuration = 9000
$('#friends').animate({
top: newTop,
left: newLeft,
!!! --> width: "+="+((newTop-$('friends').css('top'))*3),
}, newDuration, function() {
moveit();
});
}
$(document).ready(function() {
moveit();
});
应该让图像飞来飞去(工作)。 我添加了标有“!!! - >”的行这应该会使图像越接近页面底部。
我做错了什么?代码不会抛出任何错误。
答案 0 :(得分:5)
$('friends').css('top')
返回一个字符串,您需要将其转换为int才能使用它从newTop
中减去
parseInt($('friends').css('top'), 10)
会做的伎俩
您还需要在jQuery选择器中使用ID或类标识符'#friends'
或'.friends'
,但我想您正在寻找具有朋友ID的内容
试试这个
width: "+="+((newTop - parseInt($('#friends').css('top'), 10))*3),
答案 1 :(得分:4)
您的意思是$('#friends')
而不仅仅是$('friends')
吗?您的声明正在寻找元素标记“friends”并尝试获取它的top
CSS属性值。
我建议您也缓存$('friends')
选择器,这样您就不必为.animate()
调用选择两次。
答案 2 :(得分:2)
非常确定您的问题是.css("top")
会返回类似100px
的字符串值。您希望使用.position().top
代替获取整数值。
答案 3 :(得分:0)
我认为你的问题在于如何获得最高职位。可能不是你想要的,但我在这里工作......