Reputation: 680
I have a problem with javascript. I need to change a div's class dynamically using .classeName = "..." but it doesn't update itself. For example, I have put a transform into my class. It does a scale and set the transform-origin but nothing appears on my screen. Here's my code:
var panier = document.getElementById("panier");
if (panier.style.display == "none" || panier.style.display == "")
{
panier.className = "";
panier.style.display = "block";
panier.style.webkitTransform = "scale(0, 0)";
}
if (panier.className.search("enleverPanier") >= 0)
panier.className += panier.className.replace("enleverPanier", "afficherPanier");
else
panier.className += " afficherPanier";
As you can see, my class afficherPanier does a scale(1,1). The div keeps it's scale(0,0) that I set in case the div isn't visible.
Here's my css
.afficherPanier {
-webkit-transform-origin: left top;
-moz-transform-origin: left top;
-ms-transform-origin: left top;
-o-transform-origin: left top;
transform-origin: left top;
-webkit-transform: scale(1, 1);
-moz-transform: scale(1, 1);
-ms-transform: scale(1, 1);
-o-transform: scale(1, 1);
transform: scale(1, 1);}
Do you know why the scale(1,1) doesn't work? Thank you! :)
Upvotes: 1
Views: 542
Reputation: 71
Right now I'm pretty sure className is being changed to enleverPanierafficherPanier. To fix this, try changing
panier.className += panier.className.replace("enleverPanier", "afficherPanier");
to
panier.className = panier.className.replace("enleverPanier", "afficherPanier");
Upvotes: 1