首页 > web前端 > css教程 > 如何暂时禁用 CSS 过渡效果以平滑元素大小调整?

如何暂时禁用 CSS 过渡效果以平滑元素大小调整?

DDD
发布: 2024-11-30 20:12:18
原创
123 人浏览过

How Can I Temporarily Disable CSS Transition Effects for Smooth Element Resizing?

暂时禁用 CSS 过渡效果

在 Web 开发中,通常需要在更改元素时禁用 CSS 过渡效果,以确保顺利调整大小或外观调整。这是最优雅的解决方案:

解决方案

创建 CSS 类:

.notransition {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}
登录后复制

使用 JavaScript(不使用 jQuery):

someElement.classList.add('notransition'); // Disable transitions
doWhateverCssChangesYouWant(someElement);
someElement.offsetHeight; // Trigger a reflow, flushing the CSS changes
someElement.classList.remove('notransition'); // Re-enable transitions
登录后复制

使用 JavaScript jQuery:

$someElement.addClass('notransition'); // Disable transitions
doWhateverCssChangesYouWant($someElement);
$someElement[0].offsetHeight; // Trigger a reflow, flushing the CSS changes
$someElement.removeClass('notransition'); // Re-enable transitions
登录后复制

说明:

此解决方案使用 CSS 类来覆盖任何现有的转换设置!重要。然后,它将类添加到元素,进行所需的 CSS 更改,使用 offsetHeight 强制回流,最后删除类以重新启用过渡。

注意事项

  • 确保.notransition 覆盖现有规则(考虑在 CSS 中使用 !important)。
  • 之后强制回流通过读取 offsetHeight 或使用其他适当的方法来禁用过渡。
  • 此解决方案可跨浏览器工作,是暂时禁用 CSS 过渡效果的最优雅的方法。

以上是如何暂时禁用 CSS 过渡效果以平滑元素大小调整?的详细内容。更多信息请关注PHP中文网其他相关文章!

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