Javascript IE上的Jquery动画出错
我写了这些代码,并使其在IE&chrome&firefox中工作,它在chrome和firefox中工作良好,但在IE中工作不好。有人告诉我为什么,谢谢 当我按下“开始”按钮时,这些代码会产生一个动画,我希望当我按下“停止”按钮时它会停止,但当我按下“停止”按钮时,警报会显示很多次 好的,这是我的代码。小心你的浏览器,它可能会在播放动画时崩溃 原谅我英语不好Javascript IE上的Jquery动画出错,javascript,jquery,internet-explorer,jquery-animate,Javascript,Jquery,Internet Explorer,Jquery Animate,我写了这些代码,并使其在IE&chrome&firefox中工作,它在chrome和firefox中工作良好,但在IE中工作不好。有人告诉我为什么,谢谢 当我按下“开始”按钮时,这些代码会产生一个动画,我希望当我按下“停止”按钮时它会停止,但当我按下“停止”按钮时,警报会显示很多次 好的,这是我的代码。小心你的浏览器,它可能会在播放动画时崩溃 原谅我英语不好 <html style = "overflow:hidden"> <script src="jquery-1.7.2.j
<html style = "overflow:hidden">
<script src="jquery-1.7.2.js"></script>
<script>
var DIV ;
var CONTENT ;
var move = false;
$(function(){
DIV = $('<img src="7.png"></img>');
CONTENT = $('#content');
});
function startAnimation(){
$('#content').empty();
var div = $('<img src="7.png"></img>');
div.appendTo('#content');
var w_w=$(document).width();
var d_w=div.width();
var l=w_w/2 - d_w/2;
div.css("position","absolute");
div.css("top",$(document).height()+div.height());
div.css("left",l);
if(!move){
div.animate({top:-div.height(),left:l},1000,function(){
alert('ok');
return;
});
}else{
div.animate({top:-div.height(),left:l},1000,function(){
//setTimeout(function(){
startAnimation.call(window);
return;
});
}
}
function start(){
if(!move){
move = true;
startAnimation();
}
}
function stop(){
move = false;
}
</script>
<body style = "overflow:hidden">
<button onclick="start();">start</button>
<button onclick="stop();">stop</button>
<div id='content' sytle="width:1000px;height:700px;overflow:hidden">
</div>
</body>
</html>
var-DIV;
var含量;
var-move=false;
$(函数(){
DIV=$('');
内容=$(“#内容”);
});
函数startAnimation(){
$('#content').empty();
var div=$('');
div.appendTo(“#content”);
var w_w=$(document).width();
var d_w=分区宽度();
var l=w_w/2-d_w/2;
div.css(“位置”、“绝对”);
css(“top”,$(document.height()+div.height());
div.css(“左”,l);
如果(!移动){
div.animate({top:-div.height(),左:l},1000,function(){
警报(“正常”);
返回;
});
}否则{
div.animate({top:-div.height(),左:l},1000,function(){
//setTimeout(函数(){
startAnimation.call(窗口);
返回;
});
}
}
函数start(){
如果(!移动){
move=true;
startAnimation();
}
}
函数停止(){
move=false;
}
开始
停止
一些Internet Explorer版本确实忽略了css值;在其末尾没有px
top:200
返回错误,但top:200px
在ie上工作正常
试试这个:
if(!move){
div.animate({'top':-div.height()+'px','left':l + 'px'},1000,function(){//here
alert('ok');
return;
});
}else{
div.animate({'top':-div.height()+'px','left':l + 'px'},1000,function(){//+'px'
startAnimation.call(window);
return;
});
}
我尝试添加“px”,但它不起作用。警报显示不止一次,我不明白。你能展示你的示例吗?或者你也可以在JSFIDLE上展示给我们,这样我们可以快速解决这个问题。添加“px”的示例正在我的ie 7 8 9上工作,你能更详细地说明你的问题吗?谢谢,我知道它在工作,动画工作,但是你能告诉我当你按下“停止”按钮时发生了什么吗?它发出了多少次警报?它应该发出一次警报,但不会。也许你可以在你的电脑上创建一个html文件并将代码粘贴到文件中,然后运行它并尝试按下“停止”。