jQuery animate 是不是在现代浏览器上使用 css3 过渡?

Posted

技术标签:

【中文标题】jQuery animate 是不是在现代浏览器上使用 css3 过渡?【英文标题】:Does jQuery animate use css3 transitions on modern browsers?jQuery animate 是否在现代浏览器上使用 css3 过渡? 【发布时间】:2012-10-28 23:38:00 【问题描述】:

我正在使用 1.8+ 版本。

由于 css 过渡是硬件加速的,我想知道 jQuery 的动画功能是否在幕后依赖 css3 过渡(适用于现代浏览器)。

我在 animate docs http://api.jquery.com/animate/ 上没有看到任何提及

【问题讨论】:

【参考方案1】:

不,jQuery 不使用 css 过渡,但 Zepto(jQuery 兼容)对其所有动画使用 CSS 过渡,并且比 jQuery 执行得更好。

【讨论】:

【参考方案2】:

jQuery 尚未使用 CSS 3 可能是因为浏览器之间在实现特殊用例方面存在一些小问题。到目前为止,并非所有内容都是一致的,有时会出现很难解决的错误。

但是有一些插件,例如 jQuery Transit,确实使用 CSS 3 动画/过渡/等。使用 Transit,您可以回退到使用 .animate(),如下所示:

// Delegate .transition() calls to .animate()
// if the browser can't do CSS transitions.
if (!$.support.transition)
  $.fn.transition = $.fn.animate;

http://ricostacruz.com/jquery.transit/

【讨论】:

插件+1。但我不得不不同意你关于浏览器之间问题的说法; jQuery 的主要目标是在跨浏览器开发中移除样板代码,所以我相信这应该是另一个原因。【参考方案3】:

您可以从source 中看到,它还没有使用任何 CSS3 来制作动画。 (要查看动画代码,请搜索“function Animation”。)

【讨论】:

现代浏览器没有优化的任何原因?【参考方案4】:

没有。它一步一步地快速改变内联样式属性的值,给人以动画的印象。

【讨论】:

以上是关于jQuery animate 是不是在现代浏览器上使用 css3 过渡?的主要内容,如果未能解决你的问题,请参考以下文章

JQuery.animate() 在某些浏览器上以不同的速度移动 div

在 FF 和 Chrome(但不是 Safari)中单击几次后,jQuery animate scrollLeft 停止工作

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

jQuery Animate 顶部:在 Chrome 中不起作用

jQuery中动画animate(上)

jQuery滚动到元素的底部而不是顶部