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

问题: 页面加载触时 所有 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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值