首页 > web前端 > css教程 > 为什么我的 CSS 转换在通过 JavaScript 应用时不起作用?

为什么我的 CSS 转换在通过 JavaScript 应用时不起作用?

Susan Sarandon
发布: 2024-10-30 00:34:02
原创
728 人浏览过

Why Aren't My CSS Transitions Working When Applied Through JavaScript?

通过 JavaScript 分配时未应用 CSS 转换

尽管使用 JavaScript 应用 CSS3 转换,但它们无法按预期工作。当动态分配包含过渡属性的 CSS 类时,会出现此问题。

要有效触发过渡,先决条件是:

  • 属性的显式定义(例如,不透明度:0;)
  • 定义的过渡(例如,transition: opacity 2s;)
  • 设置新属性(例如,opacity: 1;)

在 JavaScript 中,问题源于浏览器的处理时间。必须首先应用正确的样式,然后稍微延迟一下,然后再设置负责转换的 CSS 类。此延迟允许浏览器在应用过渡之前注册应用的样式。

要实现此延迟,请使用 window.setTimeout() 推迟添加包含过渡的 CSS 类:

<code class="js">window.setTimeout(function() {
  slides[targetIndex].className += " target-fadein";
}, 100);</code>
登录后复制

或者,在加载时在 HTML 中包含一个转换触发类 (target-fadein-begin):

<code class="html"><div class="fadeable target-fadein-begin"></div></code>
登录后复制

通过满足这些条件,通过 JavaScript 触发的 CSS 转换可以按预期运行,从而允许无缝动画。

以上是为什么我的 CSS 转换在通过 JavaScript 应用时不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板