嗨,我创建了具有翻转和缩放效果的图块。

我正在尝试向每个图块添加不同的变换。我正在尝试仅使用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。我不太擅长使用jqueryjavascript。我已经为toggleClass添加了功能,但是我不太擅长使用它,否则CSS3 Transitions非常流畅和清晰。只需编辑jquery和类即可,一切都很好。

关于javascript - 瓷砖在不同的变换中的翻转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20000953/

10-09 21:24