gpt4 book ai didi

:hover后触发的CSS3自定义动画

转载 作者:行者123 更新时间:2023-11-28 09:27:46 26 4
gpt4 key购买 nike

我正在创建一系列“ window ”或“小狗门”,当悬停在它们上面时,它们似乎会像小狗门一样推回“ window ”。

我已经能够创建小狗门关闭的自然效果。它来回摆动几次,然后回到默认位置。

我的问题是我还没有想出一种方法来在悬停松开时触发摆动。我知道这是一个逻辑问题,因为我看过它的例子 here并使用关键帧 [此处][2]。我也知道我可以用 javascript 解决这个问题,但我在这个网站上严格坚持使用 CSS。

更新:

这是工作示例。 Fiddle

谢谢大雄!

HTML:

<ul class="window">
<li>
<figure class="door">
<img src="http://www.ta-sa.org/data/images/laughing_man_big_2.png" alt="">
</figure>
</li>
</ul>

CSS:

* {
list-style: none;



}
.door {
width: 300px;
height: 300px;
margin: 0;
position: relative;
perspective:1000px;
-webkit-perspective:1000px;
/* Safari and Chrome */
}
.door img {
background-color: #E8585A;
width: 100%;
display: block;
position: relative;
transform-origin: top;
-ms-transform-origin: top;
/* IE 9 */
-webkit-transform-origin: top;
/* Safari and Chrome */
-moz-animation: swing 2s;
-webkit-animation: swing 2s;
animation: swing 2s;
z-index: 10;
}

.door:hover img {
transform-origin: top;
-webkit-transform-origin: top;
-webkit-transform: rotateX(-60deg);
-webkit-transition: all .2s;
background-color: #00a99d;
-webkit-animation: swing;
/* Safari and Chrome */
}
@-webkit-keyframes swing {
0%, 20%, 40%, 60%, 80%, 100% {
-webkit-transform-origin: top center;
}
0% {
-webkit-transform: rotateX(-60deg);
}
20% {
-webkit-transform: rotateX(-60deg);
}
40% {
-webkit-transform: rotateX(25deg);
}
60% {
-webkit-transform: rotateX(-20deg);
}
80% {
-webkit-transform: rotateX(5deg);
}
100% {
-webkit-transform: rotateX(0deg);
}
}

最佳答案

不错的技术,我不知道悬停在 div 上时可以触发动画!我摆弄了一下,希望它能正常工作,即使不如预期的那么顺利,但这可能足以在正确的方向上更进一步。

这里的问题是 - 我猜 - 你没有在悬停状态下声明动画(如你的链接中所建议的),而只是一个过渡。所以我尝试为悬停时打开的“门”添加一个过渡...

.door:hover img {
transform-origin: top;
transform: rotateX(-60deg);
transition: all .2s;

...以及将在鼠标移出时触发的动画:

   animation: swing;
}

希望这fiddle显示你需要什么或至少在某种程度上帮助你。无论如何,我很高兴自己学到了一些新东西,谢谢。

* {
list-style: none;
-webkit-transition: all .5s ease-out;
-moz-transition: all .5s ease-out;
-o-transition: all .5s ease-out;
transition: all .5s ease-out;

}
*:hover {
-webkit-transition: all .2s ease-out;
-moz-transition: all .2s ease-out;
-o-transition: all .2s ease-out;
transition: all .2s ease-out;
}
.door {
width: 300px;
height: 300px;
margin: 0;
position: relative;
perspective:1000px;
-webkit-perspective:1000px;
/* Safari and Chrome */
}
.door img {
background-color: #E8585A;
width: 100%;
display: block;
position: relative;
transform-origin: top;
-ms-transform-origin: top;
/* IE 9 */
-webkit-transform-origin: top;
/* Safari and Chrome */
-moz-animation: swing 2s;
-webkit-animation: swing 2s;
animation: swing 2s;
z-index: 10;
}

.door:hover img {
transform-origin: top;
-webkit-transform-origin: top;
-webkit-transform: rotateX(-60deg);
-webkit-transition: all .2s;
background-color: #00a99d;
-webkit-animation: swing;
/* Safari and Chrome */
}
@-webkit-keyframes swing {
20%, 40%, 60%, 80%, 100% {
-webkit-transform-origin: top center;
}
20% {
-webkit-transform: rotateX(-60deg);
}
40% {
-webkit-transform: rotateX(25deg);
}
60% {
-webkit-transform: rotateX(-20deg);
}
80% {
-webkit-transform: rotateX(5deg);
}
100% {
-webkit-transform: rotateX(0deg);
}
}
<ul class="window">
<li>
<figure class="door">
<img src="https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" alt="">
</figure>
</li>
</ul>

关于:hover后触发的CSS3自定义动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17847049/

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