我得到了一個在IE瀏覽器和Chrome瀏覽器中工作的腳本,但不是在FF中。或者它可以在所有三種情況下工作,如果我不能找到'x'被警告的行嗎?腳本僅在alert()未轉義時才起作用?
在FF 3.6股利是第一個可見當劇本是成功的一半..它只是跳轉到「動線」
<div id="tst" style="position:absolute; top:200px; left:200px; height:100px; width:100px; background:#ff0000"></div>
<script type="text/javascript">
function Tween(){
this.time = 0;
this.duration = 800;
this.x_start = 0;
this.x_end = 0;
this.target_func = null;
this.method_func = null;
this.loop = null;
this.interval = 20;
this.start = function(){
if(!this.method_func){
this.method_func = this.regularEaseOut;
}
var _this = this;
this.loop = setInterval(function(){
if(_this.set_time() > 0){
var x = _this.method_func();
//alert(x);
_this.target_func(x);
}
}, this.interval);
};
this.set_time = function(){
this.time += this.interval;
if(this.time > this.duration){
clearInterval(this.loop);
this.time = 0;
}
return this.time;
};
this.regularEaseInOut = function(){
var t = this.time;
var s = this.x_start;
var e = this.x_end;
var d = this.duration;
if((t/=d/2) < 1){
return c/2*t*t + b;
}
else{
return -c/2 * ((--t)*(t-2) - 1) + b;
}
};
this.regularEaseIn = function(){
var t = this.time;
var s = this.x_start;
var e = this.x_end;
var d = this.duration;
return c*(t/=d)*t + b;
};
this.regularEaseOut = function(){
var t = this.time;
var s = this.x_start;
var e = this.x_end;
var d = this.duration;
return -e *(t/=d)*(t-2) + s;
};
}
var Tween = new Tween();
Tween.x_start = 200;
Tween.x_end = 1200;
Tween.target_func = function(x){
document.getElementById('tst').style.left = x+'px';
};
Tween.start();
</script>
當它「不起作用」時會發生什麼?有錯誤嗎?還是奇怪的行爲?或者什麼都沒有? – 2011-05-06 06:55:39
該div只在腳本完成時纔可見..它只是跳到「移動線」的中間 – clarkk 2011-05-06 06:57:29
檢查錯誤控制檯是否有任何Javascript錯誤 – 2011-05-06 06:57:53