【问题标题】:Hover Animation won't disappear when not hovering不悬停时悬停动画不会消失
【发布时间】:2013-02-12 01:30:17
【问题描述】:

我有一个悬停动画的 div。但是,当我不悬停时,div 不会消失

这就是整个事情的样子:http://jsfiddle.net/Vbxtc/

这是html:

    <nav>
       <div id="controls">
            <button id="playButton">Play</button>      
            <div id="defaultBar">
                <div id="progressBar"></div>
            </div>
            <button id="vol" onclick="level()">Vol</button>
            <button id="mute">Mute</button>
            <button id="full" onclick="toggleFullScreen()">Full</button>
        </div> 
       <div id="playlist" class="animated fadeInRight">
            <div>cats</div>
            <div>cats</div>
            <div>cats</div>
        </div>
    </nav>

这是我制作的 CSS:

#playlist{
    position:absolute;
    display:block;
    border:1px solid red;
    height: 82%;
    width: 25%;
    top: 20px;
    right: 0px;
    z-index: 2;
    float:right;
    padding: 0px;
    margin: 0px; 
    color:white;
    background-color:#999999;
    opacity: 0;
}
#playlist:hover {
    opacity: 1;
}

这是我正在尝试的动画

.animated:hover {
    -webkit-animation-fill-mode: both;
    -moz-animation-fill-mode: both;
    -ms-animation-fill-mode: both;
    -o-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation-duration: 1s;
    -moz-animation-duration: 1s;
    -ms-animation-duration: 1s;
    -o-animation-duration: 1s;
    animation-duration: 1s;
}

.fadeInRight {
    -webkit-animation-name: fadeInRight;
    -moz-animation-name: fadeInRight;
    -o-animation-name: fadeInRight;
    animation-name: fadeInRight;
}
@-webkit-keyframes fadeOutRight {
    0% {
        opacity: 1;
        -webkit-transform: translateX(0);
    }

    100% {
        opacity: 0;
        -webkit-transform: translateX(20px);
    }
}
@-webkit-keyframes fadeInRight {
    0% {
        opacity: 0;
        -webkit-transform: translateX(20px);
    }

    100% {
        opacity: 1;
        -webkit-transform: translateX(0);
    }
}

【问题讨论】:

  • 悬停在哪个项目上不会消失?是悬停在左边的空白处吗?
  • 是的,当我走到空白区域的左侧时。 div 将设置动画,不透明度将变为 1。如果我让动画完成,然后将鼠标移到该区域之外。 div 不离开(不透明度 0)
  • 如果您指的是所有 div,例如“cats cat”和“play vol mut full”,那么当鼠标移出时,我发现它会消失。你用的是哪个浏览器?
  • 有猫的那个。底部控件正在做他们应该做的事情。我正在使用 Chrome。
  • 哦,那么您必须对您的问题进行编辑,因为它与更改多个浏览器功能的代码有关,因为您可以尝试在最新的 firefox 中使用它并且它可以工作。

标签: html css animation


【解决方案1】:

我注意到,当您将鼠标准确计时(悬停大约 1 秒并将鼠标向上移动)时,它确实会很好地淡出。

另一件事是,如果你添加类fadeOutRight如下:

<div id="playlist" class="animated fadeInRight fadeOutRight">

它消失得太快了。

我知道我帮不上什么忙,但答案在于时机。

另外,如果您在侧边栏上设置了 fadeOutRight 类,它会很好地工作!

<aside id="sidebar" class="fadeOutRight">

也许,除了fadeInRight div 之外,将fadeOutRight 类放在所有内容上。

【讨论】:

  • 不过,如果您将鼠标悬停太久,则 div 仍然存在。答案与时间有关。希望这会有所帮助!
【解决方案2】:

在悬停状态下使用元素位置并不是一个好主意。 即使你能正确地编程(这并不容易),大多数时候用户也不会理解发生了什么。

你可以得到闪烁的场景,在没有用户移动光标的情况下,你的 div 离开光标位置,取消悬停,div 重新进入光标,悬停触发等等。

我建议在另一个 div 上触发悬停,该 div 覆盖移动 div 所在的整个区域。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-09-22
  • 2013-08-09
  • 1970-01-01
  • 2021-02-24
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多