zoukankan      html  css  js  c++  java
  • transform顺序浅谈

    有用过transform的小伙伴们可能都会遇到一些问题,发现transform得到的结果往往不是我们所想的

    例如scale(2,1) rotate(30deg) ,我们预想的结果是一个先放大的元素,然后旋转30度,结果应该是一个没有变形的元素,但是显示很残酷:

    理想:

    ----------------变成--------------------》》》


    实际:

    ----------------变成--------------------》》》

    实际上变形了,这是为什么呢?因为scale后再rotate,x轴和y轴转过的角度就不同了,所以我们就先rotate再放大就不会变形了

    因此理想的写法是:

    transform: scale(2,1) rotate(30deg);

    实际上的写法是:

    transform: rotate(30deg) scale(2,1);

    不同的是css3变形是根据元素自己的坐标轴,而canvas和svg变形都是根据画布左上角的坐标轴。


    ps:之前听过说变换顺序是倒着来的,其实种说法是站在坐标轴不变的情况下理解的

    但我觉得更好的理解是坐标轴跟着变换了而不是顺序从后往前(而scale后坐标轴的变换会变得很奇怪,例如scaleX(2)后再translateX(30px),最后translate居然发生了60px)

  • 相关阅读:
    Python 魔法方法
    使用PHP7来批量更新MangoDB数据
    git 小乌龟安装教程
    webpack初学者(1)
    移动端与PC端的触屏事件
    解决onclick事件的300ms延时问题
    尺寸单位em,rem,vh,vw
    ngRoute 与ui.router区别
    angular.js的依赖注入解析
    ionic的基础学习(第一篇)
  • 原文地址:https://www.cnblogs.com/amiezhang/p/8025653.html
Copyright © 2011-2022 走看看