【发布时间】:2018-02-19 13:25:15
【问题描述】:
我正在尝试创建一个带有动画的侧边栏菜单,并尝试尽可能多地仅使用 css。如果不行,JS/JQuery 也可以。
我的问题是,我有一个带有两个背景图像的 <span></span> 元素,我想为它们设置不同的动画行为。第一个应根据 span 的大小旋转并增加其大小,第二个不应旋转并保持与以前相同的大小,而应仅在动画完成后出现。
是否可以在每个背景图像的一个元素上使用完全不同的动画?如果是,怎么做?
到目前为止,这是我的代码:
列表由无序列表完成,每个<li></li> 应包含一个菜单项
<ul>
<li>
<a class="menu-item-link" href="#"><span class="menu-item">1</span>Active or hovered Menu</a>
</li>
<li><li>
</ul>
一些带有动画关键帧的 CSS
.menu-item-wrapper {
width: 500px;
clear: both;
}
.menu-item-link {
margin-left: 5px;
color: white;
text-decoration: none;
}
.menu-item {
float: left;
color: white;
text-align: center;
padding-top: 5px;
display: block;
width: 30px;
height: 30px;
background-image: url("hexagon.svg"), url("mars.png");
background-size: contain;
background-repeat: no-repeat;
}
.menu-item:hover {
animation-name: menuAnimation;
animation-duration: 0.5s;
animation-fill-mode: forwards;
color: transparent;
}
@keyframes menuAnimation {
from {
width: 30px;
height: 30px;
transform: rotate(0deg);
}
to {
width: 50px;
height: 50px;
transform: rotate(210deg);
}
}
这就是动画完成后的样子(星球图像和链接文本应该只有在动画完成后才能看到)
【问题讨论】:
-
我不明白你对 secon 元素期望的动画是什么
-
我真的不想要它的动画,但是由于我正在旋转跨度,我需要逆时针旋转第二个背景,所以它不会旋转。我猜与调整大小相同。
-
您可以使用出色的 GSAP 库 greensock.com/gsap,因为您需要在第一个动画完成后触发动画
-
@t3__rry 看起来很有趣,我试试看
标签: javascript jquery html css