翻转css 3 + js卡,只能一起翻看

时间:2016-08-03 16:17:21

标签: javascript jquery html css transition

嘿,我在这里发现了一个很好的IE兼容卡翻转代码,我修改了它,它到目前为止工作。唯一的问题是它确实翻转所有卡而不是所选卡。我试图修改js代码,但它不知何故不起作用:

http://codepen.io/HendrikEng/pen/pbOYYp

HTML:

<div class="c-services__item">
  <div class="c-services__item__content">
   <div class="c-services__item--front">Front</div>
   <div class="c-services__item--back">Back</div>
  </div>
 </div>
<div class="c-services__item">
  <div class="c-services__item__content">
   <div class="c-services__item--front">Front</div>
   <div class="c-services__item--back">Back</div>
  </div>
 </div>

JS:

 $('.c-services__item').hover(function(){$('.c-services__item').toggleClass('applyflip');}.bind(this));

我试图将其修改为:

    $(".c-services__item").hover(function(){
        $(this).find(".c-services__item").toggleClass("applyflip");}.bind(this));
    });
});

但这根本不起作用

css:

.c-services__item {
    perspective: 1000px;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    -o-perspective: 1000px;
    -ms-perspective: 1000px;
    width: 200px;
    height: 337px;
}

.c-services__item .c-services__item__content {
    transition: 0.5s ease-out;
    -webkit-transition: 0.5s ease-out;
    -moz-transition: 0.5s ease-out;
    -o-transition: 0.5s ease-out;
    -ms-transition: 0.5s ease-out;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;

     // content backface is visible so that static content still appears
    backface-visibility: visible;
    -webkit-backface-visibility: visible;
    -moz-backface-visibility: visible;
    -o-backface-visibility: visible;
    -ms-backface-visibility: visible;

    position:relative;
    width: 100%;
    height: 337px;

}
.c-services__item.applyflip .c-services__item__content {
    transform: rotateY(180deg);
    -webkit-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    -o-transform: rotateY(180deg);
    -ms-transform: rotateY(180deg);
}


.c-services__item .c-services__item__content .c-services__item--static {
    // Half way through the card flip, rotate static content to 0 degrees
    transition: 0s linear 0.17s;
    -webkit-transition: 0s linear 0.17s;
    -moz-transition: 0s linear 0.17s;
    -o-transition: 0s linear 0.17s;
    -ms-transition: 0s linear 0.17s;
    transform: rotateY(0deg);
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -o-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);

    text-align: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 337px;

    line-height:100px;
}

.c-services__item.applyflip .c-services__item__content .c-services__item--static {
 // Half way through the card flip, rotate static content to -180 degrees -- to negate the flip and unmirror the static content
    transition: 0s linear 0.17s;
    -webkit-transition: 0s linear 0.17s;
    -moz-transition: 0s linear 0.17s;
    -o-transition: 0s linear 0.17s;
    -ms-transition: 0s linear 0.17s;
    transform: rotateY(-180deg);
    -webkit-transform: rotateY(-180deg);
    -moz-transform: rotateY(-180deg);
    -o-transform: rotateY(-180deg);
    -ms-transform: rotateY(-180deg);
}

.c-services__item .c-services__item__content .c-services__item--front {
    background-color: skyblue;
    color: tomato;
}

.c-services__item .c-services__item__content .c-services__item--back {
    background-color: tomato;
    color: skyblue;
}

.c-services__item .c-services__item__content .c-services__item--front, .c-services__item .c-services__item__content .c-services__item--back {
    // Backface visibility works great for all but IE. As such, we mark the backface visible in IE and manage visibility ourselves
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    -ms-backface-visibility: visible;
    position: absolute;
    overflow: hidden;
    width: 100%;
    height: 337px;
    text-align: center;
}
.c-services__item .c-services__item__content .c-services__item--front, .c-services__item.applyflip .c-services__item__content .c-services__item--front {
    transform: rotateY(0deg);
    -webkit-transform: rotateY(0deg);
    -moz-transform: rotateY(0deg);
    -o-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
}

.c-services__item .c-services__item__content .c-services__item--back, .c-services__item.applyflip .c-services__item__content .c-services__item--back {
    transform: rotateY(-180deg);
    -webkit-transform: rotateY(-180deg);
    -moz-transform: rotateY(-180deg);
    -o-transform: rotateY(-180deg);
    -ms-transform: rotateY(-180deg);
}

.c-services__item .c-services__item__content .c-services__item--front, .c-services__item.applyflip .c-services__item__content .c-services__item--back {
    // IE Hack. Halfway through the card flip, set visibility. Keep other browsers visible throughout the card flip.
    animation: stayvisible 0.5s both;
    -webkit-animation: stayvisible 0.5s both;
    -moz-animation: stayvisible 0.5s both;
    -o-animation: stayvisible 0.5s both;
    -ms-animation: donothing 0.5s;
    -ms-transition: visibility 0s linear 0.17s;
    visibility: visible;
}
.c-services__item.applyflip .c-services__item__content .c-services__item--front, .c-services__item .c-services__item__content .c-services__item--back {
    // IE Hack. Halfway through the card flip, set visibility. Keep other browsers visible throughout the card flip.
    animation: stayvisible 0.5s both;
    -webkit-animation: stayvisible 0.5s both;
    -moz-animation: stayvisible 0.5s both;
    -o-animation: stayvisible 0.5s both;
    -ms-animation: donothing 0.5s;
    -ms-transition: visibility 0s linear 0.17s;
    visibility: hidden;
}
@keyframes stayvisible { from { visibility: visible; } to { visibility: visible; } }
@-webkit-keyframes stayvisible { from { visibility: visible; } to { visibility: visible; } }
@-moz-keyframes stayvisible { from { visibility: visible; } to { visibility: visible; } }
@-o-keyframes stayvisible { from { visibility: visible; } to { visibility: visible; } }
@-ms-keyframes donothing { 0% { } 100% { } }

1 个答案:

答案 0 :(得分:0)

您无需使用.find()

$(".c-services__item").hover(function(){
    $(this).toggleClass("applyflip");