Benoît Dubreuil
Benoît Dubreuil

Reputation: 680

Javascript, dynamic css and transform

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

Answers (1)

Guolin
Guolin

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

Related Questions