问题描述
|
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
和rotate
。