Let's say I have a div
that had translateX
and translateY
values added dynamically.
<div class="object child0"
style="-webkit-transform: translateX(873.5px) translateY(256px);
width: 50px; height: 50px;">
I want to add rotateY(20deg)
to the current transforms, but applying it via
element.style.webkitTransform = "rotateX(20deg)"
loses the other values.
Is there a way to add the rotateY
without losing the translateX
and translateY
transforms?
In the example below, we'll use multiple values of the transform property. It is possible to add multiple values applied one after another. The values must be separated by space.
The translate() method moves an element from its current position (according to the parameters given for the X-axis and the Y-axis).
scale() : Affects the size of the element. This also applies to the font-size , padding , height , and width of an element, too. It's also a a shorthand function for the scaleX and scaleY functions.
The transform CSS property lets you rotate, scale, skew, or translate an element.
You could use the +=
operator to append the rotateX(20deg)
to the already existing transformation.
el.style.webkitTransform += "rotateX(20deg)";
Note: I have used a different transformation in the below snippet for the visual effect but method is the same.
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);
}
div {
background: red;
margin-bottom: 20px;
}
<div class="display-object child0" style="-webkit-transform: translateX(43.5px) translateY(6px); width: 50px; height: 50px;"></div>
<button id="changeDeg">Change Rotation</button>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With