【发布时间】:2023-04-04 06:46:01
【问题描述】:
我正在尝试使用 Zepto 动画和 CSS3 过渡来为 div 向左移动并在单击按钮时再次返回动画。为此,我使用 toggleClass 添加和删除样式为 margin-right:-0;
的类一切正常,但是当我点击按钮切换课程时,我在移动设备上遇到了非常轻微的延迟。我已经使用 animate 无延迟地让它工作,但 CSS3 过渡是硬件加速的,所以我希望让动画稍微平滑一些。
基本上,当我单击按钮切换动画时,在它触发之前会有一个非常轻微的暂停,我想摆脱这个。
代码如下,有人知道我为什么会出现这种轻微的延迟吗?我的猜测是,这与切换类和读取样式的速度有关?
感谢任何帮助/见解!
#side-menu {
float: right;
height: 100%;
width: 80%;
overflow: scroll;
margin-right:-1024px;
box-shadow: 4px 0 5px #484848 inset;
-webkit-box-shadow: 4px 0 5px #484848 inset;
-moz-box-shadow: 4px 0 5px #484848 inset;
background: linear-gradient(#444444, #333333) repeat scroll 0 0 #595858;
background: -webkit-linear-gradient(#444444, #333333) repeat scroll 0 0 #595858;
background: -moz-linear-gradient(#444444, #333333) repeat scroll 0 0 #595858;
background: -o-linear-gradient(#444444, #333333) repeat scroll 0 0 #595858;
-webkit-transition: margin-right 1s ease-in-out;
-webkit-transform: translate3d(0, 0, 0);
-webkit-transform: translateZ(0);
}
.sideMenuToggle{margin-right: 0 !important;}
$('#menu_toggle').on('click', function(){
$('#side-menu').toggleClass('sideMenuToggle');
})
【问题讨论】:
-
我只是猜测它,所以可能是错误的。开始转换时菜单是否仍然可见。可能是 -1024px 设置的,不仅看不到,而且看不到,而且需要一些时间才能到达屏幕的边界?顺便说一句,您正在尝试使用 -webkit-transform 来获得 GPU 加速,但是为此设置 2 个属性是没有用的,只会应用一个。
-
你能做一个小演示吗?
标签: jquery css css-transitions zepto toggleclass