admin管理员组文章数量:1279175
I am following the example David Walsh provides to make a flip animation. Its is all working on hover, however, I want to flip the element on click as opposed to on hover.
The following code works and flips the element on hover, however, I want to use javascript/jquery to implement this. I have tried many different ways but cannot figure out how to do this.
.flip-container {
perspective: 1000px;
}
.flip-container:hover .flipper,
.flip-container.hover .flipper {
transform: rotateY(180deg);
}
.flip-container,
.front,
.back {
width: 320px;
height: 480px;
}
.flipper {
transition: 0.6s;
transform-style: preserve-3d;
position: relative;
}
.front,
.back {
backface-visibility: hidden;
position: absolute;
top: 0;
left: 0;
}
.front {
z-index: 2;
transform: rotateY(0deg);
}
.back {
transform: rotateY(180deg);
}
<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
<div class="flipper">
<div class="front">
1
</div>
<div class="back">
2
</div>
</div>
</div>
I am following the example David Walsh provides to make a flip animation. Its is all working on hover, however, I want to flip the element on click as opposed to on hover.
The following code works and flips the element on hover, however, I want to use javascript/jquery to implement this. I have tried many different ways but cannot figure out how to do this.
.flip-container {
perspective: 1000px;
}
.flip-container:hover .flipper,
.flip-container.hover .flipper {
transform: rotateY(180deg);
}
.flip-container,
.front,
.back {
width: 320px;
height: 480px;
}
.flipper {
transition: 0.6s;
transform-style: preserve-3d;
position: relative;
}
.front,
.back {
backface-visibility: hidden;
position: absolute;
top: 0;
left: 0;
}
.front {
z-index: 2;
transform: rotateY(0deg);
}
.back {
transform: rotateY(180deg);
}
<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
<div class="flipper">
<div class="front">
1
</div>
<div class="back">
2
</div>
</div>
</div>
Share
Improve this question
edited Oct 24, 2016 at 13:29
tejashsoni111
1,4051 gold badge18 silver badges34 bronze badges
asked Oct 24, 2016 at 12:51
user6002037user6002037
0
2 Answers
Reset to default 5https://jsfiddle/pf4aemn7/ HTML
<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
<div class="flipper">
<div class="front">
1
</div>
<div class="back">
2
</div>
</div>
</div>
CSS
.flip-container {
perspective: 1000px;
}
.flip-container.hover .flipper {
transform: rotateY(180deg);
}
.flip-container,
.front,
.back {
width: 320px;
height: 480px;
}
.flipper {
transition: 0.6s;
transform-style: preserve-3d;
position: relative;
}
.front,
.back {
backface-visibility: hidden;
position: absolute;
top: 0;
left: 0;
}
.front {
z-index: 2;
transform: rotateY(0deg);
}
.back {
transform: rotateY(180deg);
}
JS
$(document).on("click", ".flip-container", function () {
$(this).toggleClass('hover');
});
Use the onclick
event handler on .flip-container
, instead of ontouchstart
. And of course don't forget to remove the css :hover
selector from your styles (i.e. .flip-container:hover .flipper
).
.flip-container {
perspective: 1000px;
}
.flip-container.hover .flipper {
transform: rotateY(180deg);
}
.flip-container,
.front,
.back {
width: 320px;
height: 480px;
}
.flipper {
transition: 0.6s;
transform-style: preserve-3d;
position: relative;
}
.front,
.back {
backface-visibility: hidden;
position: absolute;
top: 0;
left: 0;
}
.front {
z-index: 2;
transform: rotateY(0deg);
}
.back {
transform: rotateY(180deg);
}
<div class="flip-container" onclick="this.classList.toggle('hover');">
<div class="flipper">
<div class="front">
1
</div>
<div class="back">
2
</div>
</div>
</div>
Also, I think you should rename the .hover
class to something more appropriate like .clicked
.
本文标签: javascriptCSS Flip animation on clickStack Overflow
版权声明:本文标题:javascript - CSS Flip animation on click - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741209501a2358824.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论