javascript - 重置 CSS 过渡不起作用(过渡结束问题)

标签 javascript html css

我有一个 div,我希望它表现出以下行为:

立即变为纯红色; 在 2 秒内淡出至 50% 的不透明度; 由特定事件触发时重复。

这是我放入回调中的代码,每 ~2 秒调用一次:

    currElem.style.transition = 'none';
    currElem.style.opacity = 1;
    currElem.style.transitionProperty = 'opacity';
    currElem.style.transitionDuration = '2s';
    currElem.style.opacity = 0.5;

但是,这不起作用。有帮助吗?

提前致谢。

最佳答案

我建议使用 CSS animations相反。

给你:

.box {
    background-color: tomato;
    width: 200px;
    height: 200px;
    opacity: 1;

  -webkit-animation: reduce_opacity 2s linear infinite;
     -moz-animation: reduce_opacity 2s linear infinite;
       -o-animation: reduce_opacity 2s linear infinite;
          animation: reduce_opacity 2s linear infinite;
}

@-webkit-keyframes reduce_opacity { from { opacity: 1; } to { opacity: 0.5; } }
   @-moz-keyframes reduce_opacity { from { opacity: 1; } to { opacity: 0.5; } }
     @-o-keyframes reduce_opacity { from { opacity: 1; } to { opacity: 0.5; } }
        @keyframes reduce_opacity { from { opacity: 1; } to { opacity: 0.5; } }

WORKING DEMO

infinite 关键字属于 animation-iteration-count定义动画循环播放次数的属性。

更新

正如您提到的通过 JavaScript 事件触发重复动画,您可以坚持使用 transition 并在事件处理程序中删除/添加某个类以实现效果:

.animate {
    -webkit-transition: opacity 2s linear;
       -moz-transition: opacity 2s linear;
        -ms-transition: opacity 2s linear;
         -o-transition: opacity 2s linear;
            transition: opacity 2s linear;
    opacity: 0.5;
}

JavaScript(jQuery 版本)

$('#reset-animation').on('click', function() {
    $('.box').removeClass('animate');

    setTimeout(function() {
        $('.box').addClass('animate');
    }, 100);
});

UPDATED DEMO .

关于javascript - 重置 CSS 过渡不起作用(过渡结束问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22183421/

相关文章:

javascript - 使用 CSS 更改按钮颜色

jquery - 如何从 `ul li` 获取值并写入另一个 `ul li`

javascript - 一个新对象抛出 "Unexpected token."nodejs

javascript - 如何在第一次提交后立即禁用 ASP.NET 按钮(在客户端上)?

javascript - 在 axios 调用中,事件永远不会在 VueJS 中发出

javascript - Angular - 如何模拟 HTTP 请求?

文本旁边的 HTML float 图像

html - CSS 对齐(边距与右上角不对齐)

php - 需要连接php和mysql

javascript - 更有效地应用媒体查询