【问题标题】:Javascript, dynamic css and transformJavascript、动态 CSS 和转换
【发布时间】:2014-05-17 01:58:59
【问题描述】:

我的 JavaScript 有问题。我需要使用 .classeName = "..." 动态更改 div 的类,但它不会自行更新。例如,我在课堂上添加了一个变换。它进行了缩放并设置了变换原点,但我的屏幕上没有出现任何内容。这是我的代码:

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";

如您所见,我的班级 afficherPanier 做了一个 scale(1,1)。 div 保持我设置的 scale(0,0) 以防 div 不可见。

这是我的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);}

你知道为什么 scale(1,1) 不起作用吗? 谢谢! :)

【问题讨论】:

  • 并非所有浏览器都支持 transform。使用浏览器的网络检查器查看类是否按预期应用,而不是依赖视觉结果。
  • 抱歉,我对建议的编辑感到困惑。他们在编辑之前都在那里。

标签: javascript css dynamic transform


【解决方案1】:

现在我很确定 className 正在更改为 enleverPanierafficherPanier。要解决此问题,请尝试更改

panier.className += panier.className.replace("enleverPanier", "afficherPanier");

panier.className = panier.className.replace("enleverPanier", "afficherPanier");

【讨论】:

  • 哦,谢谢!我没有看到,但我仍然有同样的问题:scale(1,1) 没有做任何事情。
  • 在这种情况下,您介意在 jsfiddle 上分享您的代码(CSS、Javascript 和 HTML)并在此处发布吗?这将非常有帮助。
  • 当我把它放在jsfiddle上时,页面完全坏了。 :(
  • 无论如何,这是源代码(没有元/包含)jsfiddle.net/thecheeselover/p2Kqa
  • 顺便说一句,要隐藏第二页(大小为(0,0)),您需要调用 HidePanier()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-03
  • 2015-01-25
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多