2017-08-15 109 views
0

最初我有一个盒子,通过转换鼠标悬停时,不透明度从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>

+0

也许提供您的标记,或者我们猜测?谢谢 –

回答

0

你有没有考虑过用少了?

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

1

如果你想淡入的动画,其在一开始从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; }