CSS3 :hover wont work after animation

标签 css hover css-animations

我有一个 DIV,它在 :hover 时将 bgcolor 更改为蓝色。 单击按钮添加将 bgcolor 动画设置为绿色的类。但现在 :hover 不起作用(背景颜色不会变为蓝色)。

为什么?

http://jsfiddle.net/EstSiim/me7t055c/

HTML:

<div class="box"></div>
<button class="animate-btn">Animate</button>

CSS:

.box {
        background-color: red;
        width: 200px;
        height: 200px;
    }
    .box:hover {
        background-color: blue;
    }

    .trigger-bg-change {
        -webkit-animation: bg-change 1s ease 0 1 forwards;
        animation: bg-change 1s ease 0 1 forwards;  
    }

    @-webkit-keyframes bg-change {
        0% {background-color:red;}
        100% {background-color:green;}
    }
    @-keyframes bg-change {
        0% {background-color:red;}
        100% {background-color:green;}
    }

JS:

$(function() {
        $('.animate-btn').on('click', function() {
            console.log('hey');
            $('.box').addClass('trigger-bg-change');
        });
});

最佳答案

DEMO

您可以为 .trigger-bg-change 使用以下 CSS 规则:

.trigger-bg-change {
    background-color: green;
    -webkit-animation: bg-change 1s ease 0 1 none;
    animation: bg-change 1s ease 0 1 none;  
}

通过将 animation-fill-mode 属性从 forwards 更改为 none,动画不会将样式应用于它之后的元素已经执行,所以 .box:hover 的规则不会被覆盖。

关于CSS3 :hover wont work after animation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25260281/

相关文章:

css - 用另一个覆盖一个 css 规则?

jQuery超大人像照片显示拉伸(stretch)

html - 使用位置为 :absolute 的 li 时,IE8 不会悬停

javascript - 随着内容大小的变化,以动画方式重新定位左浮动 DIV

vue.js - 嵌套的 Vue 转换 : one transition works, 其他没有

CSS悬停仅适用于IE10中的 anchor ?

javascript - Div 在展会上显示不正确

jquery - 鼠标悬停不会在生产环境中触发 jquery 动画

html - CSS Hover 只在文本上?

javascript - 网站水平滚动激事件画