【问题标题】:Converting a webkit transition from CSS to JavaScript将 webkit 转换从 CSS 转换为 JavaScript
【发布时间】:2012-09-10 02:16:48
【问题描述】:

对于以下 HTML:

<li id="li1">
    <div id="card-container">
        <div id="card">
            <div class="front">
            <img id="track_image" src="image.jpg" />
        </div>
        <div class="back">
            <div id="controls">
                <audio controls></audio>
            </div>
        </div>  
    </div>
</li>

我有以下 CSS,它会在悬停时翻转它。

#card-container:hover .back {   
    -webkit-transform: rotateX(0deg);
}

#card-container:hover .front {      
    -webkit-transform: rotateX(-180deg);
}

但我想更改它,以便在单击时发生翻转,我附加了一个单击侦听器并正在尝试下面的代码,但它没有做任何事情

function click(evt, listElementId) {
       var listElement = document.getElementById(listElementId);
       var front = listElement.getElementsByClassName("front")[0];
       front.style.webkitTransition = "rotateX(-180deg)";
       var back = listElement.getElementsByClassName("back")[0];
       back.style.webkitTransition = "rotateX(0deg)"

JavaScript 应该如何实现与 CSS 相同的功能?

【问题讨论】:

    标签: javascript css


    【解决方案1】:

    您混淆了transitions 和transformations。根据this answer,你应该使用

    front.style.webkitTransform = "rotateX(-180deg)";
    

    【讨论】:

      【解决方案2】:

      使用类:

      #card-container.flipped .back {   
          -webkit-transform: rotateX(0deg);
      }
      
      #card-container.flipped .front {      
          -webkit-transform: rotateX(-180deg);
      }
      
      function click(evt, listElementId) {
          document.getElementById(listElementId).classList.add('flipped');
      }
      

      【讨论】:

      • 当我尝试时仍然没有任何反应。
      • @minitech: 你可以使用.toggle() :-)
      • @Aminoacids:你是如何连接听众的?向我们展示代码。另外,你们UA支持classList吗?
      猜你喜欢
      • 1970-01-01
      • 2019-03-02
      • 2017-08-20
      • 2011-11-16
      • 1970-01-01
      • 2019-11-14
      • 2019-05-11
      • 2023-03-10
      • 2016-10-25
      相关资源
      最近更新 更多