我已经花了几天时间尝试,但我放弃了。
我正在尝试让一个对象无限地沿着正弦波动画。它不应该在第一个周期后结束。
主要问题:周期在约1 1/3 Pi处结束,而不仅仅是Pi。这个额外的运动破坏了动画效果。
我卡在这里:http://jsfiddle.net/WPnQG/12/。每个周期后,它会跳过大约40像素,然后继续沿着它的路径。这就是我无法解决的问题--它停止并重新开始的值不相等,因此对象看起来会跳来跳去。有人能帮忙一下吗?谢谢
我正在使用jQuery Path Plugin执行动画的路径--即所提到的正弦曲线。
来源:
function float(dir){
var x_current = $("div").offset().left;
var y_current = $("div").offset().top;
var SineWave = function() {
this.css = function(p) {
var s = Math.sin(Math.abs(p-1)*10);
if (!dir){// flip the sin wave to continue traversing
s = -s;
}
var x = 300 -p * 300;
var y = s * 100 + 150;
//var o = ((s+2)/4+0.1); //opacity change
last_x = x;
// add the current x-position to continue the path, rather than restarting
return {top: y + "px", left: x_current + x + "px"};
}
};
$("div").stop().animate({
path: new SineWave
}, 5000, 'linear', function(){
// avoid exceeding stack
setTimeout(function(){float(!dir)}, 0);
});
}
float(true,false)
,尽管float(dir)
只需要一个参数吗?我只是想学习JS。 - ankit