【问题标题】:jQuery animation issue chrome vs mozillajQuery 动画问题 chrome vs Mozilla
【发布时间】:2013-09-09 01:48:12
【问题描述】:

我在尝试制作动画的 div 时遇到问题。在 mozilla 中,当我运行下面的代码时,我会从页面底部到页面顶部获得 #nav div 的动画。当我在 chrome 或 safari 中运行相同的代码时,它会跳转到浏览器窗口的顶部并向下移动 52px。你知道为什么会这样吗?

 $("#nav").animate({'top': 52}, 2000);

#nav div

position:absolute;
bottom:-70px;

第一个 onclick 事件从页面底部触发其部分外观。 2nd onclick 触发它从页面底部移动到页面顶部。

【问题讨论】:

  • 您最初是否在您的元素上设置了top
  • 没有。让我试着设置一个顶部。
  • 我已将其设置为 position: absolute;底部:-70px;因为它在点击时从页面底部向上动画。
  • 然后另一个onlcick事件触发它从页面底部到顶部的动画。
  • 所以你已经使用底部定位了元素,但是然后动画顶部?我认为这可能是问题所在。

标签: jquery animation


【解决方案1】:

这似乎是因为您正在为没有设置top 的元素的top 设置动画。您可以通过在动画之前设置top 来解决此问题:

var $this = $("#nav");

$this.css("top", $this.position().top);
$(this).animate({"top": 0}, 1000); 

http://jsfiddle.net/zmrC5/

编辑:差异是由于浏览器在检查没有顶部设置的元素的top 值时返回的不同结果。您可以从这个小提琴中看到这一点:

http://jsfiddle.net/zmrC5/1/

Chrome 将返回“auto”,而 firefox 返回计算的最高值。

【讨论】:

  • 感谢 jsfiddle 的验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-28
  • 2014-02-24
相关资源
最近更新 更多