nuw*_*way 4 javascript jquery css3 css-transforms webkit-transform
比方说,我有一个div是有translateX和translateY值动态增加.
<div class="object child0"
style="-webkit-transform: translateX(873.5px) translateY(256px);
width: 50px; height: 50px;">
Run Code Online (Sandbox Code Playgroud)
我想添加rotateY(20deg)到当前的转换,但通过element.style.webkitTransform = "rotateX(20deg)"丢失其他值来应用它
.
有没有办法添加rotateY而不丢失translateX和translateY转换?
您可以使用+=运算符将其附加rotateX(20deg)到已存在的转换.
el.style.webkitTransform += "rotateX(20deg)";
Run Code Online (Sandbox Code Playgroud)
注意:我在下面的代码片段中使用了不同的转换来获得视觉效果,但方法是相同的.
window.onload = function() {
var el = document.getElementsByTagName("div")[0];
el.style.webkitTransform += "rotateZ(20deg)";
console.log(el.style.webkitTransform);
document.getElementById("changeDeg").onclick = changeDeg; //event handler
}
function changeDeg() {
var el = document.getElementsByTagName("div")[0];
var re = /(rotateZ)(\(.*(?:deg\)))/g; //regex to match rotateZ(...deg)
var newDeg = 40;
if (el.style.webkitTransform.match(re).length != -1) {
el.style.webkitTransform = el.style.webkitTransform.replace(re, '$1(' + newDeg + 'deg)'); // $1 is first capturing group which is "rotateZ"
}
console.log(el.style.webkitTransform);
}Run Code Online (Sandbox Code Playgroud)
div {
background: red;
margin-bottom: 20px;
}Run Code Online (Sandbox Code Playgroud)
<div class="display-object child0" style="-webkit-transform: translateX(43.5px) translateY(6px); width: 50px; height: 50px;"></div>
<button id="changeDeg">Change Rotation</button>Run Code Online (Sandbox Code Playgroud)