Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE上的Jquery动画出错_Javascript_Jquery_Internet Explorer_Jquery Animate - Fatal编程技术网

Javascript IE上的Jquery动画出错

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

我写了这些代码,并使其在IE&chrome&firefox中工作,它在chrome和firefox中工作良好,但在IE中工作不好。有人告诉我为什么,谢谢

当我按下“开始”按钮时,这些代码会产生一个动画,我希望当我按下“停止”按钮时它会停止,但当我按下“停止”按钮时,警报会显示很多次

好的,这是我的代码。小心你的浏览器,它可能会在播放动画时崩溃

原谅我英语不好

<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文件并将代码粘贴到文件中,然后运行它并尝试按下“停止”。