Nic*_*ais 4 css animation hover
我正在创建一系列“窗户”或“小狗门”,当悬停在上面时,似乎像小狗门一样推回“窗户”。
我已经能够创造出狗狗关门的自然效果。它来回摆动几次,然后回到默认位置。
我的问题是我一直无法找到一种在释放悬停时触发摆动的方法。我知道这是一个逻辑问题,因为我已经看到它在这里完成并使用关键帧[这里][2]的例子。我也知道我可以用 javascript 解决这个问题,但我在这个网站上严格遵守 CSS。
更新:
这是工作示例。小提琴
谢谢大雄!
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>
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
不错的技巧,我不知道您可以在 div 上悬停时触发动画!我稍微摆弄了一下,希望它能够正常工作,即使没有预期的那么顺利,但这可能足以在正确的方向上更进一步。
这里的问题是 - 我猜 - 您没有声明悬停状态的动画(如您的链接中所建议的那样),而只是一个过渡。所以我尝试添加一个过渡,让“门”在悬停时打开......
.door:hover img {
transform-origin: top;
transform: rotateX(-60deg);
transition: all .2s;
Run Code Online (Sandbox Code Playgroud)
...以及一个将在鼠标移开时触发的动画:
animation: swing;
}
Run Code Online (Sandbox Code Playgroud)
希望这个小提琴能显示你需要的东西,或者至少能以某种方式帮助你。无论如何,我很高兴自己学到了新东西,谢谢。
.door:hover img {
transform-origin: top;
transform: rotateX(-60deg);
transition: all .2s;
Run Code Online (Sandbox Code Playgroud)
animation: swing;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12891 次 |
| 最近记录: |