transition页面加载触发问题解决方案

文章讲述了在页面加载时,由于CSS的transition属性导致元素初始状态不是直接渲染,而是有过渡效果。为了解决这个问题,文章提出了在body上添加过渡禁用类,然后在页面完全加载后移除该类,确保元素能直接显示初始状态,而在后续交互中正常应用过渡效果。
摘要由CSDN通过智能技术生成

问题: 页面加载触时 所有 transform 都会自动渲染一次。我们要的是直接渲染,而不是渐变渲染

div{
    width:300px;
    height:300px;
    background:red;
    transform:rotate(90deg);
    /*过渡属性出现:从90deg开始过渡到下面的360deg*/
    transition:4s;
}
div:hover{
    transform:rotate(360deg);
}/*   运行结果描述:  当前div会在页面第一次加载的时候触发transition过渡一次到90deg,不会直接显示为初始状态。   这是由于link引入的css和html加载顺序的原因 */
问题解决方案如下:

首先在body添加类名 transition_none,先禁用所有的transition过渡效果。以保证初始状态的直接渲染。

.transition_none *{
    -webkit-transition:none!important;
    -moz-transition:none!important;
    -ms-transition:none!important;
    -o-transition:none!important;
    transition:none!important;
}

下面利用window.onload 等页面加载完毕去掉 transition_none类名,保证下面正常过渡交互。

<script>
  let getBody =  document.querySelector('.transition_none');
   window.onload = function(){
        getBody.className = '';
   }    
</script>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值