gpt4 book ai didi

jquery - 单次 CSS3 变换后的双重 CSS3 变换

转载 作者:行者123 更新时间:2023-11-28 16:21:51 27 4
gpt4 key购买 nike

我有一个 HTML5、jQuery 卡片内存游戏,您可以通过一次翻转两张卡片来匹配卡片。我想在两张卡片匹配时播放动画,但因为我已经将 "transform: rotationY(180deg)" 应用到翻转的卡片上,所以出现了错误。

卡片 HTML

<div id="card1" class="card">
<figure class="front">
<img src="front.jpg">
</figure>
<figure class="back">
<img src="back.jpg">
</figure>
</div>

首先玩家揭示这个,然后我给它添加“flipped”类。

.flipped {
transform: rotateY(180deg);
}

然后我删除“翻转”类并添加类 scaleOut。 rotateY 用于保持旋转,以便右侧始终显示给玩家,而刻度用于隐藏卡片。

.scaleOut {
-webkit-transform: rotateY(180deg) scale(0.0);
}

这似乎不起作用,即使只是添加翻转类成功地翻转了卡片。 Chrome 似乎运行动画,但会立即播放,而 Firefox 根本不播放缩放动画。

这是我更改类的代码。它可以很好地添加和删除类。

 $(#card1).removeClass('flipped');
$(#card1).addClass('scaleOut');

卡片和纸板 CSS

#board {
padding-top: 10px;
width: 600px;
height: 450px;
background-color: rgb(228, 223, 208);
-webkit-perspective: 1000px;
perspective: 1000px;
}

.card {
float:left;
width: 106px;
height: 100px;
margin-left: 10px;
margin-bottom: 10px;
border: 1px solid #cfcfcf;
cursor: pointer;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transition: -webkit-transform 1s;
transition: transform 1s;
}

最佳答案

我不知道为什么会这样,但当 scale(1) 设置在 transform 上时,它似乎工作正常 .flipped 类。由于 scale(1) 是初始状态,卡片在翻转但不匹配时应该可见,我认为将其添加到 transform 属性不会导致任何问题。(当我设法找到此行为的原因时,我会更新答案。)

这在最新版本的 Chrome、Firefox 和 Edge 中运行良好。

注意:该代码段是在您更新有问题的纸板和卡片的 CSS 之前准备的。 CSS 略有不同,但该解决方案仍适用于您的情况。

var temp1 = $('#card1');
temp1.on('click', function() {
temp1.addClass('flipped');
setTimeout(function() {
temp1.removeClass('flipped');
temp1.addClass('scaleOut');
}, 2500);
})
''
.flipped {
transform: rotateY(180deg) scale(1);
}
.scaleOut {
transform: rotateY(180deg) scale(0);
}
.front {
background: yellowgreen;
}
.back {
background: green;
}
.card {
position: relative;
height: 100px;
width: 100px;
border: 1px solid;
transform-style: preserve-3d;
transition: all 1s;
}
figure {
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
margin: 0;
backface-visibility: hidden;
}
.back {
transform: rotateY(180deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="card1" class="card">
<figure class="front">
<img src="front.jpg">
</figure>
<figure class="back">
<img src="back.jpg">
</figure>
</div>

关于jquery - 单次 CSS3 变换后的双重 CSS3 变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36667062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com