transform 多值先后执行顺序

 

一、用例
 
1.先平移后旋转
.box{
    width: 200px;
    height: 200px;
    background: red;
    animation: move 3s forwards;
}
@keyframes move{
    0%{
        transform: translateX(0)  rotate(0) ;
    }
    100%{
        transform: translateX(200px) rotate(90deg) ;   
    }
}
<div class="box">1231212212</div>

 

效果图:

1231212212

 

 

 2.先旋转后平移

因为rotate旋转的时候会旋转坐标轴,之后再进行translate会依据新的坐标轴。所以会导致向下平移了200px
.box{
    width: 200px;
    height: 200px;
    background: red;
    animation: move 3s forwards;
}
@keyframes move{
    0%{
        transform: translateX(0)  rotate(0) ;
    }
    100%{
        transform: rotate(90deg)  translateX(200px);    
    }
}
    <div class="box">aaaaaaaaa</div>

效果图:

aaaaaaaaa

 

 

 

 

 

 

 

 

二、总结
transform: rotate(angle) translate(length | percentage)之间的关系。translate的百分比取值基准元素自身的宽(x)和高(y)来确定移动的距离。
1.浏览器的解析过程,从上到下 从左到右
2.rotate()旋转的时候会旋转坐标轴
3.注意:一般建议将旋转放在最后。
 
 
 
 
posted @ 2019-03-15 11:05  yuesu  阅读(867)  评论(0编辑  收藏  举报