var transform = ['scale(' + scale + ')'];
$.merge(transform, ['rotate(' + rotate + 'deg)']);
$(this).css(-moz-transform, transform.join(' '));
此代码块在事件生成时执行,新的缩放和旋转被添加到 css 元素,但每当再次生成相同的事件时,css 元素将自身重置为原始大小和位置。转换被执行第二次重置后。我想消除将元素重置为原始大小和位置的操作。如何在第一次触发事件时使更改永久化,并在第二次触发事件时在此基础上进行构建? 请帮忙提前致谢
最佳答案
此代码没有任何问题,但请记住,您是在绝对条件下设置 scale
和 rotate
,而不是相对于其“初始”状态。
所以每次执行此代码时,元素的 -moz-transform
属性都会被覆盖。如果您想根据它的当前状态旋转和缩放它,您必须跟踪您的 scale
和 rotate
值并根据需要调整它们。例如,如果此代码在循环中,您可以执行 rotate=rotate+5;
或类似的操作。
您还可以使用 ($this).css('-moz-transform')
从 CSS 请求这些属性,解析它以获得您想要的值,并更新 scale
和 相应地旋转
。
关于javascript - 如何使用 -moz-transform 永久更改 css 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6257593/