嗨,我创建了具有翻转和缩放效果的图块。
我正在尝试向每个图块添加不同的变换。我正在尝试仅使用CSS实现此目的。我需要一些帮助。
这是我尝试过的代码。
HTML:
<div class="wrap" data-sap-ui-preserve="html1" id="html1">
<div class="box">
<div class="boxInner">
<div class="face front">
<img src="images/s.png">
</div>
<div class="face back">
<label class="text">Search Donors...</label>
</div>
</div>
</div>
<div class="box">
<div class="boxInner clicked">
<div class="face front">
<img src="images/r.png">
</div>
<div class="face back">
<label class="text">Register</label>
</div>
</div>
</div>
<div class="box">
<div class="boxInner clicked">
<div class="face front">
<img src="images/u.png">
</div>
<div class="face back">
<label class="text">Update Details</label>
</div>
</div>
</div>
<div class="box">
<div class="boxInner clicked">
<div class="face front">
<img src="images/s.png">
</div>
<div class="face back">
<label class="text">Share</label>
</div>
</div>
</div>
</div>
CSS:
.wrap {
overflow: hidden;
margin: 10px;
-webkit-transform: translateZ(0);
position: relative;
top: 0px;
}
.box {
float: left;
position: relative;
width: 25%;
/* padding-bottom: 15%; */
padding-bottom: 10px;
}
.boxInner {
overflow: hidden;
margin: 10px;
-moz-transform: scale(1);
-o-transform: scale(1);
-webkit-transform: scale(1);
transform: scale(1);
opacity: 1;
-moz-transition: all 0.5s cubic-bezier(0.0, 0.35, .6, 1.5);
-o-transition: all 0.5s cubic-bezier(0.0, 0.35, .6, 1.5);
-webkit-transition: all 0.5s ease-in;
transition: all 0.5s ease-in;
-webkit-box-shadow: #666 0px 0px 6px;
-moz-box-shadow: #666 0px 0px 6px;
box-shadow: #666 0px 0px 6px;
}
.boxInner:hover {
-webkit-box-shadow: #666 0px 0px 6px;
-moz-box-shadow: #666 0px 0px 6px;
box-shadow: #666 0px 0px 6px;
-moz-transform: scale(1.05);
-webkit-transform: scale(1.05);
-o-transform: scale(1.05);
transform: scale(1.05);
}
.boxInner img {
width: 100%;
}
.flip {
-webkit-transform: rotatex(-180deg) !important;
}
.front {
z-index: 1;
cursor: pointer;
opacity: 1;
}
.back {
-webkit-transform: rotatex(-180deg);
cursor: pointer;
opacity: 0;
}
.box .boxInner.clicked .back {
opacity: 1;
}
.box .boxInner.clicked .front {
opacity: 0;
}
.box .boxInner.clicked {
-webkit-transform: scaleY(-1);
}
.face {
transition: all 0.5s linear;
position:relative;
}
.text{
padding-top:35%;
position: absolute;
margin-left:35%;
color:#666666;
font-weight:bold;
font-size:100%;
}
.text::first-letter{
font-size:400%;
color:#009de0;
margin-top:10px;
}
body.no-touch .boxInner:hover .titleBox,body.touch .boxInner.touchFocus .titleBox
{
margin-bottom: 0;
}
@media only screen and (max-width : 480px) {
/* Smartphone view: 1 tile */
.box {
width: 100%;
}
}
@media only screen and (max-width : 650px) and (min-width : 481px) {
/* Tablet view: 2 tiles */
.box {
width: 50%;
}
}
@media only screen and (max-width : 1050px) and (min-width : 651px) {
/* Small desktop / ipad view: 3 tiles */
.box {
width: 33.3%;
}
}
@media only screen and (max-width : 1290px) and (min-width : 1051px) {
/* Medium desktop: 4 tiles */
.box {
width: 25%;
}
}
JS:
$(".boxInner").click(function(){
$(this).toggleClass("clicked");
});
Demo Link
最佳答案
这是您要求的FIDDLE。我不太擅长使用jquery
或javascript
。我已经为toggleClass添加了功能,但是我不太擅长使用它,否则CSS3 Transitions
非常流畅和清晰。只需编辑jquery和类即可,一切都很好。
关于javascript - 瓷砖在不同的变换中的翻转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20000953/