CSS悬停效果仅在单击时 [英] CSS Hover effect only on click

查看:45
本文介绍了CSS悬停效果仅在单击时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一组具有悬停效果的盒子,我希望仅在单击时才翻转单个盒子.

I have a group of boxes with a hover effect and I want the individual boxes to be flipped only when clicked.

我正在尝试删除此css块:

I am trying to remove this block of css:

/*.flip-container:hover .flipper {
    transform: rotateY(180deg);
}*/

并使用underscorejs仅在单击但不起作用时将其添加回去:

And use underscorejs to add it back only when clicked but not working:

window.onload = function(){
var memoryCards = document.getElementsByClassName("flipper");
_.each(memoryCards, function (card){
    this.addEventListener("click", function(){
    this.setAttribute("transform", "rotateY(180deg");
        }

);});


};

这是我当前的悬停代码:

Here is my current code that flips on hover:

<div class="flip-container" >
    <div class="col-xs-3 box-size flipper" >
    <div class="front"></div>
    <div class="back"></div>
    </div>
    </div>

.box-size {
    height: 100px;
    width: 100px;
    border: 1px solid black;
    position: relative;
}



.flip-container.hover .flipper, .flip-container.flip .flipper {
    transform: rotateY(180deg);
}


*.flip-container:hover .flipper {
    transform: rotateY(180deg);
}*

/* flip speed goes here */
.flipper {
    transition: 2.0s;
    transform-style: preserve-3d;
    position: relative;
}

/* front pane, placed above back */
.front {
    /*z-index: 2;*/
    /* for firefox 31 */
    transform: rotateY(0deg);
    background-color: green;
    position: absolute;
    top: 0;
    width: 100%;
    margin-left: -15px;
    height: 100px;
}


.back {
    transform: rotateY(180deg);
    background-color: red;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100px;
    margin-left: -15px;
}

推荐答案

尝试使用此简单代码..css

Try this simple code..with css

或转到此小提琴代码

我使用

HTML部分

<div class="flip-container">
  <div class="flipper" onclick="this.classList.toggle('flipped')">
      <div class="front">
        Front
      </div>
      <div class="back">
        Back
      </div>
   </div>
</div>

css部分

    /* entire container, keeps perspective */
    .flip-container{
    /*perspective*/
    -webkit-perspective:1000;
       -moz-perspective:1000;
        -ms-perspective:1000;
         -o-perspective:1000;
            perspective:1000;
        padding:50px;
    }
    /* flip the pane when hovered */
        .flipped {
    /*transform*/
    -webkit-transform:rotateY(180deg);
       -moz-transform:rotateY(180deg);
        -ms-transform:rotateY(180deg);
         -o-transform:rotateY(180deg);
            transform:rotateY(180deg);
    }
    .flip-container, .front, .back{
    width:50px;
    height:50px;
    }
    /* flip speed goes here */
    .flipper {
    /*transition*/
    -webkit-transition:0.6s;
       -moz-transition:0.6s;
         -o-transition:0.6s;
            transition:0.6s;
    /*transform-style*/
    -webkit-transform-style:preserve-3d;
       -moz-transform-style:preserve-3d;
        -ms-transform-style:preserve-3d;
         -o-transform-style:preserve-3d;
            transform-style:preserve-3d;
    position:relative;
    }
    /* hide back of pane during swap */
    .front, .back{
    /*backface-visibility*/
    -webkit-backface-visibility:hidden;
       -moz-backface-visibility:hidden;
        -ms-backface-visibility:hidden;
         -o-backface-visibility:hidden;
            backface-visibility:hidden;
    position:absolute;
    top:0;
    left:0;
    }
    /* front pane, placed above back */
    .front{
    z-index:2;
    }
    /* back, initially hidden pane */
    .back{
    /*transform*/
    -webkit-transform:rotateY(180deg);
       -moz-transform:rotateY(180deg);
        -ms-transform:rotateY(180deg);
         -o-transform:rotateY(180deg);
            transform:rotateY(180deg);
         background-color:blue;
       min-width:100px; 
       min-height:100px;
    }
    .front{
       background-color:red;
       min-width:100px;
       min-height:100px;
    }

这篇关于CSS悬停效果仅在单击时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆