3

我正在为 HTML 和 CSS 中的移动应用程序开发一个界面。该应用程序使用了很多表单,我想使用 jQuery slideToggle 功能来显示和隐藏不常用的元素。

jQuery 动画在移动设备上运行非常糟糕,因此经过一些研究,似乎只有 CSS 中的 transform: translate3d() 会在 webkit 移动浏览器上调用硬件加速。

关于如何使用 CSS translate 3d 创建幻灯片切换的任何想法?

多谢你们,

G

4

2 回答 2

1

使用 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

这样你就可以实现你正在寻找的东西。

迭戈·特里戈

于 2012-10-10T23:43:25.180 回答
0

只是想让您知道 1.3.1 版的 JQuery mobile 正在使用 translate3d 的幻灯片动画。1.3.0 没有。

于 2013-07-09T10:42:09.173 回答