gpt4 book ai didi

javascript - RotateY 过渡无法正常工作

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:33 26 4
gpt4 key购买 nike

当我悬停一次时,过渡是正确的,但第二次时,过渡变得很奇怪,好像透视:800px 在过渡发生后开始工作。还请告诉我如何设置围绕除中心以外的边缘的旋转。我知道 transform-origin 但不知道 transform-axis。

我希望当我将鼠标悬停在 上时,这些图像应该像窗口一样打开。

var left=document.getElementById("left");
var right=document.getElementById("right");
function curtain() {
left.style.transform="rotateY(70deg)";
right.style.transform="rotateY(-70deg)";
}
function back() {
left.style.transform="rotateY(0deg)";
right.style.transform="rotateY(0deg)";
}
#animate{
width: 400px;
height: 300px;
margin: auto;
position: relative;
perspective: 800px;
}
img {
width: 100%;
}
#left {
position:absolute;
top: 0;
right: 50%;
padding: 0;
margin: 0;
width: 50%;
transition: transform 0.5s;
}
#right {
position: absolute;
top: 0;
right: 0%;
padding: 0;
margin: 0;
width: 50%;
transition: transform 0.5s;
}
<html>
<head>
<link href="style/style.css" rel="stylesheet">
</head>
<body>
<div id="animate" onmouseover="curtain()" onmouseout="back()">
<div id="left"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Ariyunda.JPG/200px-Ariyunda.JPG"></div>
<div id="right"><img src="http://www.cs.cornell.edu/courses/cs3110/2009sp/hw/ps4/beach_original.png"></div>
</div>
<script src="script/script.js"></script>
</body>
</html>

最佳答案

perspectiveonmouseout 似乎有问题。 back()(在 onmouseout 中)和 curtain()(在 onmouseover 中)的调用非常不一致。 onmouseout 在鼠标移动到元素(在本例中为 #animate)或其子元素(图像)之外时被调用。 children 是动画的 - 他们移动 - 并且 onmouseout 被多次调用。

我不会为此推荐 onmouseover/onmouseout - 相反我会使用 CSS :hover

除此之外,transform-origin 定义了旋转中心。

#animate:hover #left {
transform: rotateY(70deg);
}

#animate:hover #right {
transform: rotateY(-70deg);
}

#animate {
width: 400px;
height: 300px;
margin: auto;
position: relative;
perspective: 800px;
}

img {
width: 100%;
}

#left {
position: absolute;
top: 0;
right: 50%;
padding: 0;
margin: 0;
width: 50%;
transition: transform 0.5s;
transform-origin: left;
}

#right {
position: absolute;
top: 0;
right: 0%;
padding: 0;
margin: 0;
width: 50%;
transition: transform 0.5s;
transform-origin: right;
}
<div id = 'animate'>
<div id = 'left'><img src = 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Ariyunda.JPG/200px-Ariyunda.JPG'></div>
<div id = 'right'><img src = 'http://www.cs.cornell.edu/courses/cs3110/2009sp/hw/ps4/beach_original.png'></div>
</div>

关于javascript - RotateY 过渡无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37250947/

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