You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让CSS Transition仅作用于opacity属性,其他属性默认即时变化?

解决方案:精准指定过渡属性

你只需要把.div的transition属性从全局过渡改成仅针对opacity属性,就能实现你要的效果——只有透明度变化时缓慢过渡,其他属性(比如随屏幕尺寸变化的宽高)保持即时更新。

修改后的完整代码:

<script>
function f1(x) { x.classList.toggle('fade'); }
</script>
<style>
.div { 
  width: 20vw; 
  height: 20vh; 
  background-color: #e50; 
  opacity: 1; 
  /* 只对opacity应用1秒过渡,其他属性无过渡 */
  transition: opacity 1000ms; 
}
.fade { opacity: 0; }
</style>
<div class='div' onmouseover="f1(this)" onmouseout="f1(this)"> </div>

原理说明:

  • 原来的transition: 1000ms是简写形式,等价于transition: all 1000ms,意味着所有CSS属性的变化都会触发1秒过渡,所以屏幕尺寸变化时,vw/vh对应的宽高也会跟着过渡。
  • 改成transition: opacity 1000ms后,只有opacity属性的变化会应用1秒过渡效果,其他属性(width、height等)的变化会立即生效,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Seb D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:45:51