我正在为 HTML 和 CSS 中的移动应用程序开发一个界面。该应用程序使用了很多表单,我想使用 jQuery slideToggle 功能来显示和隐藏不常用的元素。
jQuery 动画在移动设备上运行非常糟糕,因此经过一些研究,似乎只有 CSS 中的 transform: translate3d() 会在 webkit 移动浏览器上调用硬件加速。
关于如何使用 CSS translate 3d 创建幻灯片切换的任何想法?
多谢你们,
G
我正在为 HTML 和 CSS 中的移动应用程序开发一个界面。该应用程序使用了很多表单,我想使用 jQuery slideToggle 功能来显示和隐藏不常用的元素。
jQuery 动画在移动设备上运行非常糟糕,因此经过一些研究,似乎只有 CSS 中的 transform: translate3d() 会在 webkit 移动浏览器上调用硬件加速。
关于如何使用 CSS translate 3d 创建幻灯片切换的任何想法?
多谢你们,
G
使用 tranlateY() 仍然没有使用硬件加速。
如果您仍想使用 jQuery Mobile 来实现切换效果,则应更改 Jquery Mobile CSS。
寻找这个:
.slide.in {
-webkit-transform: translateX(0);
-webkit-animation-name: slideinfromright;
}
.slide.out {
-webkit-transform: translateX(-100%);
-webkit-animation-name: slideouttoleft;
}
@-webkit-keyframes slideinfromright {
from { -webkit-transform: translateX(100%); }
to { -webkit-transform: translateX(0); }
}
@-webkit-keyframes slideouttoleft {
from { -webkit-transform: translateX(0); }
to { -webkit-transform: translateX(-100%); }
}
(见这里http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-customtransitions.html)
并改变:
"translateX(-100%)" to "translate3d(-100%,0,0)"<br>
"translateX(0)" to "translate3d(0,0,0)"<br>
"translateX(100%)" to "translate3d(100%,0,0)"
这将使 jQuery 用于 webkit 设备的移动过渡更顺畅。
来自 Webkit:
translate3d(x, y, z) 在 x、y 和 z 中移动元素,只在 z 中移动元素。正 z 朝向观察者。与 x 和 y 不同,z 值不能是百分比。 https://www.webkit.org/blog/386/3d-transforms/
众所周知,使用 translate3d 将 CSS 动画推入硬件加速。即使您要进行基本的 2d 翻译,也可以使用 translate3d 获得更多功能!
http://davidwalsh.name/translate3d
这样你就可以实现你正在寻找的东西。
迭戈·特里戈
只是想让您知道 1.3.1 版的 JQuery mobile 正在使用 translate3d 的幻灯片动画。1.3.0 没有。