javascript - chrome 和 opera 中的 jquery 位置动画问题

标签 javascript jquery css animation html

所以我有一个带有以下 css 的 div:

#MyDiv {
    position: absolute;
    overflow: visible;
    top: 0px;
    right: 50%;
    width: 49%;
    height: 99%;
    min-width: 250px;
    min-height: 400px;
    max-width: 400px;
    max-height: 500px;
    background-color: #FFFFFF;
    border: 1px solid #000000;
    margin: 0 auto;
    padding: 0px;
}

我正在使用 jquery 将其设置为向右移动 800 像素的动画。在 Firefox 中,最终位置是所需的位置,但在 Chrome 和 Opera 中,它是错误的。

    alert($("#MyDiv").position().left);
    $("#MyDiv").animate({left: "+=" + 800 + "px"}, 1000, "linear", function() {
        alert($("#MyDiv").position().left);
    });

在 firefox 中,左边的初始位置是 23(第一次警报),最后的 823(第二次警报) 在 chrome 和 opera 中最终位置是 800

我做错了什么吗?要求保持 css 不变。

附注ie8 也有一些问题,但程度低于 chrome 和 opera

提前致谢。

编辑 jsfiddle : http://jsfiddle.net/Q8K2R/

最佳答案

另一种方法是设置 css left 属性,因为动画与 css 一起工作,这里不保证,left 属性包含正确的计算数据,所以 fix 可以像

var mydiv=$("#MyDiv");
mydiv.css({left: mydiv.position().left});

动画之前 DEMO

关于javascript - chrome 和 opera 中的 jquery 位置动画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14571793/

相关文章:

javascript - Json编码数据在js中循环

javascript - JS/Jquery - 从 event.target 聚焦到下一个输入字段

html - 具体表布局

javascript - 如何使 Bootstrap jQuery 数据表响应并根据页面大小增加/减少滚动条高度?

javascript - 上传之前先剪切图片吗?

javascript - 国际键盘上常用字符的键码

javascript - 如何使用 React 从客户端的 Meteor 集合中检索数据?

javascript - 从字符串中获取两个数字

javascript - 如何禁止使用开发人员工具更改变量

css - 网络浏览器中的移动 "push"页面 - 怎么样?