我只会使用 jQuery UI 来实现这种效果。
看这个 fiddle :
http://jsfiddle.net/kEKtw/2/
用这段代码
$(document).ready(function() {
$('#main').effect("shake", {direction:'up', times:10}, 0);
});
注意事项:
- 我更改了 CSS 以使数字相加,否则 UI 代码会出现问题。
- 如果您查看 jQUI 如何实现摇动,您会看到“效果”堆栈是作为数组实现的,正如我在下面建议的那样。
位置应该是数组的原因:
您真正想要做的是设置这样的序列:
- 上移随机数量
- 等待设定的时间
- 回到中心
- 等待设定的时间
- 下调随机金额
但是,将位置用作对象不会给出顺序,也不允许您重复命令(因为命令是对象属性名称,必须是唯一的。)
如果它是一个数组,你可以设置这样的东西来传递给插件:
positions: [
'U': -300,
'W' : 1000,
'C' : 0,
'W' : 1000,
'D': 300
],
旧答案
代码很复杂,但你的问题很简单。
在摇动中的每一次“移动”,您都会将顶部或底部的相对位置更改为从 1 到 300 的新数字。这意味着该元素将在 1 到 300+ 对象大小之间移动。我相信您想要做的是将它移动到 -300 和 +300 之间。为此,您需要更改 U
命令以将 -300 的值设置为 0 而不是 0 到 300
逻辑中还有另一个错误——它没有将框重置到中心。
我是一名优秀的程序员,十分优秀!