悬停动画fadein不透明度0.5悬停不透明度1
问题描述:
最初我有一个盒子,通过转换鼠标悬停时,不透明度从0.5改为1。它运作良好。悬停动画fadein不透明度0.5悬停不透明度1
现在我想在不透明度0到0.5的开始添加一个延迟淡入动画。不幸的是,鼠标悬停转换不再起作用。
我欣赏每一个想法:)
.box {
width: 200px:
height: 50px;
padding:20px;
background-color: red;
transition: 1s ease;
opacity: 0;
opacity: 0.5 \9;
-webkit-animation:fadeIn ease-in 0.5;
-moz-animation:fadeIn ease-in 0.5;
animation:fadeIn ease-in 0.5;
\t
-webkit-animation-fill-mode:forwards;
-moz-animation-fill-mode:forwards;
animation-fill-mode:forwards;
-webkit-animation-duration:1s;
-moz-animation-duration:1s;
animation-duration:1s;
\t
-webkit-animation-delay: 3.5s;
-moz-animation-delay: 3.5s;
animation-delay: 3.5s;
}
.box:hover {transition: 0.5s; opacity: 1; }
<div class="box">This is a Box</div>
答
你有没有考虑过用少了?
button {
width: 100px;
float: left;
background: #007cbe;
color: #fff;
border: none;
border-radius: 4px;
padding: 10px;
cursor: pointer;
}
button:hover {
-webkit-transition: 3.5s;
-moz-transition: 3.5s;
-ms-transition: 3.5s;
-o-transition: 3.5s;
-webkit-opacity: 0.5;
-moz-opacity: 0.5;
opacity: 0.5;
}
<button> Button </button>
LESS版本
.transition (@transition) {
\t -webkit-transition: @transition;
\t -moz-transition: @transition;
\t -ms-transition: @transition;
\t -o-transition: @transition;
}
.opacity (@opacity: 0.5) {
\t -webkit-opacity: \t @opacity;
\t -moz-opacity: \t \t @opacity;
\t opacity: \t \t @opacity;
}
button {
width:100px;
float:left;
background:#007cbe;
color:#fff;
border:none;
border-radius:4px;
padding:10px;
cursor:pointer;
&:hover {
.transition(3.5s);
.opacity;
}
}
+0
感谢您的想法!但可能我有点不清楚。鼠标悬停过渡不应该是淡入淡出动画的一部分。 我尝试达到从不透明度0到0.5(一次)淡入的div。之后,如果鼠标悬停,它应该将不透明度从0.5改为1,并将鼠标从1改为0.5。 – Steffen
答
如果你想淡入的动画,其在一开始从0变的不透明度为0.5,则需要将fadeIn定义为:
.box {
opacity: 0;
-webkit-animation:fadeIn ease-in 0.5;
-moz-animation:fadeIn ease-in 0.5;
animation:fadeIn ease-in 0.5;
\t
-webkit-animation-fill-mode:forwards;
-moz-animation-fill-mode:forwards;
animation-fill-mode:forwards;
-webkit-animation-duration:1s;
-moz-animation-duration:1s;
animation-duration:1s;
\t
-webkit-animation-delay: 3.5s;
-moz-animation-delay: 3.5s;
animation-delay: 3.5s;
}
@keyframes fadeIn{
from{opacity: 0;}
to{opacity: 0.5;}
}
.box:hover {transition: 0.5s; opacity: 1; }
也许提供您的标记,或者我们猜测?谢谢 –