当我单击它们时,我试图旋转这两个卡中的每个卡,但无法正常工作。 我想只在单击卡片时才开始过渡,而不是在开始时。
如果有什么方法可以增强此代码,请告诉我,我仍然是初学者
* {
margin: 0;
padding: 0;
}
/*body {
background-color: rgb(236, 236, 236);
}*/
.box {
width: 190px;
height: 270px;
margin: 3px;
padding: 10px;
list-style: none;
font-size: 310px;
font-family: "Century Schoolbook", serif;
border-radius: 4px;
display: inline-block;
line-height: 255px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
transition: transform 0.7s linear;
}
ul {
position: relative;
top: 70px;
width: 500px;
margin: 0 auto;
text-align: center;
}
.a {
background: #fff;
color: #000;
transform: rotateY(180deg);
}
.b {
background: #000;
color: #fff;
}
.flip {
transform: rotateY(180deg);
}
.rflip {
transform: rotateY(0deg);
}
<!DOCTYPE html>
<html>
<head>
<title>S S</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<ul>
<li class="box a" onclick="this.classList.toggle('rflip');">S</li>
<li class="box b" onclick="this.classList.toggle('flip');">S</li>
</ul>
</body>
</html>
答案 0 :(得分:0)
您可能会研究不同的鼠标事件,例如“ mousedown”或“ mouseup”?并可能添加一个小脚本来处理回调。
<!DOCTYPE html>
<html>
<head>
<title>S S</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<ul>
<li class="box a" onmouseup="flipCard($event, true)">S</li>
<li class="box b" onmouseup="flipCard($event, false)">S</li>
</ul>
<script>
function flipCard(event, goRight) {
var classToToggle = goRight ? 'rflip' : 'flip';
event.target.classList.toggle(classToToggle);
}
</script>
</body>
</html>
如果您希望过渡发生在特定时间,则还可以使用超时(1000是毫秒,因此是1秒):
function flipCard(event, goRight) {
setTimeout(function() {
var classToToggle = goRight ? 'rflip' : 'flip';
event.target.classList.toggle(classToToggle);
}, 1000);
}
这篇文章未经任何测试,但概念应该存在
答案 1 :(得分:0)
在您的rflip类中,我想您希望进行反向翻转,这就是您拥有
的原因transform: rotateY(180deg);
在班上
如果您想摆脱这种情况,可以尝试
.a {
background: #fff;
color: #000;
transform: rotateY(360deg);
}
.rflip {
transform: rotateY(180deg);
}