【发布时间】:2017-12-20 12:02:49
【问题描述】:
我有方形导航按钮,我想在其中直观地显示哪些是活动的,例如使用:
目前我为此使用background: linear-gradient。然而,这很难制作动画,因此我正在寻找替代品。 HTML 结构如下所示:
<div class='navigation-button'>
<div class='navigation-button-container'>
<i class='fa fa-bars'></i>
</div>
</div>
对应的CSS:
.navigation-button {
width: 50px;
height: 50px;
background: purple;
}
.navigation-button-container {
width: 100%;
height: 100%;
text-align: center;
}
.navigation-button-container i {
margin-top: 25%;
margin-bottom: 25%;
color: white;
}
.active {
background: linear-gradient(right, blue 0%, blue 10%, rgba(0,0,0,0) 10%);
}
active 类可以应用于navigation-button-container 以获得所需的效果。但是,我想淡入淡出,据我所知,linear-gradients 不能动画。
我已经考虑在navigation-button-container 之前添加一个元素并为其宽度设置动画并使用CSS ::before 语法,但似乎都没有帮助。有没有一种高效的 CSS 方法可以使用 @keyframes 或 transition 获得所需的效果?
【问题讨论】:
-
我不确定您希望如何为按钮设置动画,是纯色 -> 渐变吗?如果是这样,您可以在具有
linear-gradient背景的按钮后面放置一个元素(或::before),然后使用opacity淡化它。 -
对不起,我想为蓝色的宽度从左到右设置动画。滑入说。
-
哦,好吧,...如果元素位于窗口边缘,您可以使用
::before元素并实际将其从屏幕外滑出? -
现在不是元素而是背景色
标签: html css vue-router