IE 上的 Jquery Animate 出错

Posted

技术标签:

【中文标题】IE 上的 Jquery Animate 出错【英文标题】:Jquery Animate on IE makes error 【发布时间】:2012-08-05 08:07:24 【问题描述】:

我编写这些代码并使其在 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>

【问题讨论】:

【参考方案1】:

某些 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”,但它不起作用。警报不仅显示一次,我不明白 你能举出你的例子吗?或者您也可以在 jsFiddle 上向我们展示,以便我们快速解决这个问题。 jsfiddle.net 这个添加了 'px' 的例子在我的 ie 7 8 9 上工作,你能更具体地解决你的问题吗? jsbin.com/ivemug/2/edit 谢谢你,我知道它在工作,动画工作,但是你能告诉我当你按下“停止”按钮时发生了什么吗?它警告了多少次?它应该警告一次,但不是。也许你可以在你的电脑上创建一个 html 文件并将代码粘贴到文件中,然后运行它并尝试停止。

以上是关于IE 上的 Jquery Animate 出错的主要内容,如果未能解决你的问题,请参考以下文章

Chrome, Safari 中的 JQuery .animate() != FF, IE, Opera

jquery的animate动画能不能在IE中执行

jquery - .animate 在 IE 中不起作用

jQuery .animate() 不在 IE 中为 backgroundPosition 设置动画

Jquery animate() 函数不适用于 IE

jQuery - 使用 .animate() 解析值“不透明度”时出错