【发布时间】:2018-01-08 05:25:55
【问题描述】:
我在牌组中有几张牌,其背景图像与牌组的背景图像相同,当点击它们时,它们会执行翻转动画,然后将背景图像更改为等效的正面。
这些卡片中的每一个都是一个 div。
我的问题是,当卡片被点击后翻转时,正面的背景图像也反转了。知道如何解决这个问题吗?
这里是小提琴:https://jsfiddle.net/667nxfze/
这是我的一张卡片的 HTML:
<div id='pack_cont' data-deckimage="url('/image/decks/deck1.png')">
<div class='card init' data-image="url('/image/card/card1.png')"></div>
</div>
这是对其做出反应的 Javascript:
var card = $(this);
card.toggleClass('open');
setTimeout(function(){
card.toggleClass('opened');
},300);
if(card.hasClass('open')){
//Show that card image
card.css('background-image', card.data('image'));
}else{
//Show the Deck Image
card.css('background-image', card.parent().data('deckimage'));
}
这里是 CSS 类:
.card{
width: 147px;
height: 280px;
border-radius: 18px;
position: absolute;
background-size: contain;
background-repeat: no-repeat;
cursor: pointer;
text-align: center;
/*all transition to take 1s */
transition:all 1s;
-ms-transition:all 1s;
-webkit-transition:all 1s;
-moz-transition:all 1s;
/*make card non selectable*/
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*while opening a card, again shift transform origin
to vertical and horizontal center axis
to give an actual flip effect
*/
.card.open{
-webkit-transform: rotateY( 180deg );
transform: rotateY( 180deg );
}
.card.opened{
background-image: none;
}
【问题讨论】:
标签: javascript jquery html css