用jquery的animate写的下拉展开在安卓上不顺畅,用zepto会顺畅么

这个不顺畅是由于jq太大了么,如果自己写原生动画是不是会好很多,在ios的微信上看就挺流畅的

阅读 8.4k
7 个回答

jquery的话,如果1的版本,是通过不断改变下拉的高度来实现的展开的,所以在android上很不流畅,其实在IOS也不会很流畅的,这是桌面版和手机性能的关系。zepto是利用css3来实现的,所以在IOSandroid上都是蛮流畅的。所以,移动端最好不要用jquery去实现动画。另外,同样的动画效果在ios上就是要比android流畅的,具体可以看看这个为什么 iOS 和 Android 在图形性能方面的差别那么大呢?

没啥区别的 这俩~

有没有触发硬件加速呢?

我也用过jqm,animate的性能的确不尽如人意,我也试过手写,实际效果跟jqm的差不多,估计jqm的性能也不差,卡顿的原因估计是安卓手机浏览器性能差点吧,同样的页面我在电脑相当顺畅。另外根据 @浅黑色 的说法,你可以去试试,我知道css3有一个-webkit-transition的属性,我提供思路了,你自行动手吧。

animate的性能在移动端确实有很大问题,一个折中的方案是用

translate3d

等3d变换css属性触发gpu加速去渲染页面。

亲测不开启手机GPU加速的情况下,用jquery的animate (js原理)写的动画,在苹果手机上流畅,在安卓手机上卡死(用的小米mix),原因可能是js做动画不开启GPU就是不流畅,而苹果默认是开启的,安卓不开启,或者苹果芯片确实强大,所以安卓机需要在css里加以些代码触发GUP开启translateZ 这样的,实测开启GPU后安卓和苹果流畅多相当,苹果要流畅一些。估计Zepto用的是css3的transition做的动画,估计不会像js做的动画那么的卡,所以说Zepto在手机端的性能是优于jQuery的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题