gpt4 book ai didi

javascript - 如何过渡堆叠的 Div。在 JavaScript 中

转载 作者:行者123 更新时间:2023-11-28 08:44:36 25 4
gpt4 key购买 nike

我正在尝试使用 html5、CSS3 和 JS 制作“内存游戏”。我已经完成了这个游戏的 View 和模型部分,现在正在尝试制作 Controller 。我想要的是调用一个函数,即在 JS 中翻转,并希望该函数执行过渡,而不是使用 CSS3 的悬停效果。基本上我正在尝试关注 this方法。我检查了使用悬停在 css3 中翻转,如下面的 sass 代码所示,但对于游戏,用户决定点击哪里。为简单起见,我在 html5 中简化了代码,因为它对所有其他 div 重复。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>I Don't Know</title>
<link rel="stylesheet" href="trapStyle.css">

</head>
<body>
<div class = "container" >

<div class="sub1" >
<div class="front" id="card1" onclick="flip(card1)">card1</div>
<div class="back" id="card1_1">what the hell?</div>
</div> <--sub1 Ends-->

<div class="sub1">
<div class="front" id="card2" onclick="flip(this)">card2</div>
<div class="back" id="card2_2">what the hell?
</div> <--sub1 Ends-->

</div> <-- container Ends -->


<script src ="script.js"></script>
</body>
</html>

和CSS的SASS代码

.container {
position: absolute;
left: 115px;
width: 1150px;
height: 700px;
background-color: silver;

/* SUB-CONTAINER to stack two cards */
.sub1 {
width: 200px; height: 200px;
float:left; margin: 5px;

.front {
position:absolute; width: 200px; height: 200px;
background-color: #498010;
transform: perspective( 600px) rotateY(0deg);
backface-visibility: hidden;
transition: transform 0.5s linear 0s;
}

.back {
position: absolute; width: 200px; height: 200px;
float:left; background-color: #689;
transform: perspective( 600px) rotateY(180deg);
backface-visibility: hidden;
transition: transform 0.5s linear 0s;
}


}

.sub1:hover > .front {

/* transform: perspective(600px) rotateY(-180deg); */
}

.sub1:hover > .back {

/* transform: perspective(600px) rotateY(0deg); */
}

}

和 JavaScript

function flip(front) {

document.getElementById("front").style.transition = opacity 0.5s linear 0s;
document.getElementById("front").style.opacity = 0;

}

注意:上面的链接试图将 id 传递给发生转换的 JS 函数。这里所做的完全相同,只是为了从用户那里获取输入而不是仅仅悬停,但是没有任何反应!我在我的编辑器中复制/粘贴了链接代码,并执行了平滑的过渡,但是当涉及到我的代码时,什么都没有!你能告诉我我的缺点在哪里吗?

最佳答案

将您的 CSS 从悬停状态更改为类,例如将 .sub1:hover 更改为 .hovered:

 .container .hovered > .front {
transform: perspective(600px) rotateY(-180deg); }
.container .hovered > .back {
transform: perspective(600px) rotateY(0deg); }

现在,点击时,将这个类添加到被点击的元素中:

$(".sub1").click(function() {
$(this).addClass ('hovered');
})

fiddle

javascript 中的这个函数是

function change(element) {
element.className = element.className + " hovered";
}

前提是你在函数调用中发送元素

onclick="change(this)"

fiddle - function set only in the first div

关于javascript - 如何过渡堆叠的 Div。在 JavaScript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27656722/

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