【问题标题】:How to get Mouse Out effect in CSS如何在 CSS 中获得鼠标移出效果
【发布时间】:2014-06-24 01:35:00
【问题描述】:

我在div 上创建了一个过渡效果。我已经编写了以下代码并且它工作正常,当我在hover 上div 时,颜色会平滑地变化,但是当我移除鼠标时,颜色会突然恢复到原来的状态。

我也想知道Mouse outEvent上慢慢改变颜色的方法。

请检查我的代码并指导我。

<nav>
    <ul>
        <li id="skills" class="navText" >Work -Experience</li>
        <li id="web" class="navText">Skills </li>

    </ul>
</nav>

CSS

nav ul #skills 
{
    position:absolute;
    width: 150px;
    height: 150px;
    border:6px solid;
    border-color:white;
    border-radius: 150px;
    line-height:150px;
    font-size: 15px;

    #background-color: EA7079;
    background-color:   #1A1A1A;
    color: white;

    left:370px;     
}           

nav ul #skills:hover
{
    position:absolute;
    width: 150px;
    height: 150px;
    border:6px solid;
    border-color:   #DCDEE0;
    border-radius: 150px;
    line-height:150px;
    font-size: 15px;
    background-color: EA7079;
    color: white;

    left:370px;

    /*  CSS3 */
   -webkit-transition: all 1000ms ;
   -moz-transition: all 1000ms ;
   -ms-transition: all 1000ms ;
   -o-transition: all 1000ms ;
   transition: all 1000ms ;     
}

【问题讨论】:

标签: javascript jquery css mousehover


【解决方案1】:

它突然变回了,因为你在 :hover 规则中有转换。过渡仅在鼠标悬停在元素上时才有效。 改为这样做:

nav ul #skills 
{
    position:absolute;
    width: 150px;
    height: 150px;
    border:6px solid;
    border-color:white;
    border-radius: 150px;
    line-height:150px;
    font-size: 15px;
    #background-color: EA7079;
    background-color:   #1A1A1A;
    color: white;
    left:370px;
    /*  CSS3 */
    -webkit-transition: all 1000ms ;
    -moz-transition: all 1000ms ;
    -ms-transition: all 1000ms ;
    -o-transition: all 1000ms ;
    transition: all 1000ms ;
        } 
nav ul #skills:hover
{
    position:absolute;
    width: 150px;
    height: 150px;
    border:6px solid;    
    border-color:   #DCDEE0;
    border-radius: 150px;
    line-height:150px;
    font-size: 15px;
    background-color: EA7079;
    color: white;
    left:370px;
    } 

看到了吗?仅当鼠标悬停在元素上时才会应用过渡,因为它在 :hover 规则中。因此,它不能在鼠标离开后淡出,因为不再应用过渡。如果将过渡应用于元素样式,则每次鼠标移过它时都会淡入淡出。
Here is a JSFiddle to show what I mean.
希望这会有所帮助!

【讨论】:

    【解决方案2】:

    根据CSS-tricks,如果您只在非悬停元素上进行转换,它应该可以工作

    av ul #skills 
    {
        position:absolute;
        width: 150px;
        height: 150px;
        border:6px solid;
        border-color:white;
        border-radius: 150px;
        line-height:150px;
        font-size: 15px;
    
        #background-color: EA7079;
        background-color:   #1A1A1A;
        color: white;
    
        left:370px;
        /*  CSS3 */
    -webkit-transition: all 1000ms ;
    -moz-transition: all 1000ms ;
    -ms-transition: all 1000ms ;
    -o-transition: all 1000ms ;
    transition: all 1000ms ;    
    
    
        }   
    
    
    nav ul #skills:hover
    {
        position:absolute;
        width: 150px;
        height: 150px;
        border:6px solid;
        border-color:   #DCDEE0;
        border-radius: 150px;
        line-height:150px;
        font-size: 15px;
        background-color: EA7079;
        color: white;
    
        left:370px;
    
    
    }    
    

    【讨论】:

    • 这就是我认为它会起作用的方式。但是当我查看我刚刚发布的代码时,它会导致很多闪烁,至少在 chrome 中是这样。我正在查看是否可能是因为我指定了“全部”。
    • 在 CSS 技巧中,我注意到它们仅将过渡应用于非悬停元素,但我仍在研究如何通过您的示例进行处理。
    猜你喜欢
    • 2019-03-26
    • 2011-08-06
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多