-2

对于以下 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 相同的功能?

4

2 回答 2

2

你有困惑transition的s和transformations。根据这个答案,你应该使用

front.style.webkitTransform = "rotateX(-180deg)";
于 2012-09-09T18:16:13.737 回答
0

使用一个类:

#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');
}
于 2012-09-09T18:06:16.757 回答