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 停止工作