transform与transition区别与详解

2020-04-27 09:26:49

参考地址 CSS中的transform与transition

transform:转换

对元素进行移动、缩放、转动、拉长或拉伸。

方法:translate():

元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数

有两个div,它们的css样式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.before {
            width70px;
            height70px;
            background-color#8fbc8f;
        }
 
 .after {
            width70px;
            height70px;
            background-color#ffe4c4;
            -webkit-transform: translate(50px30px);
            -moz-transform: translate(50px30px);
            -ms-transform: translate(50px30px);
            -o-transform: translate(50px30px);
            transform: translate(50px30px);
        }

 

结果如下:

rotate()

元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转。

有两个div,它们的css样式如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.before {
            width70px;
            height70px;
            background-color#8fbc8f;
        }
 
.after {
            width70px;
            height70px;
            background-color#ffe4c4;
            -webkit-transform: rotate(20deg);
            -moz-transform: rotate(20deg);
            -ms-transform: rotate(20deg);
            -o-transform: rotate(20deg);
            transform: rotate(20deg);
        }

结果如下:

scale()

元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)参数

有两个div,它们的css样式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.before {
            width70px;
            height70px;
            background-color#8fbc8f;
        }
 
.after {
            width70px;
            height70px;
            background-color#ffe4c4;
            -webkit-transform: scale(1.50.8);/*宽度变为原来的1.5倍,高度变为原来的0.8倍*/
            -moz-transform: scale(1.50.8);
            -ms-transform: scale(1.50.8);
            -o-transform: scale(1.50.8);
            transform: scale(1.50.8);
        }

结果如下:

skew()

元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.before {
            width70px;
            height70px;
            background-color#8fbc8f;
        }
 
.after {
            width70px;
            height70px;
            background-color#ffe4c4;
            -webkit-transform: skew(20deg, 20deg);/*围绕 X 轴把元素翻转20度,围绕 Y 轴翻转20度*/
            -moz-transform: skew(20deg, 20deg);
            -ms-transform: skew(20deg, 20deg);
            -o-transform: skew(20deg, 20deg);
            transform: skew(20deg, 20deg);
        }

  

结果如下:

 

 

 

transition:过渡

元素从一种样式逐渐改变为另一种的效果

有一个div,它的css样式如下:

1
2
3
4
5
6
7
8
9
10
11
12
div {
            width:100px;
            height:100px;
            background-color#87cefa;
            -webkit-transition: width 2s;/*时长为2s的宽度变化效果*/
            -moz-transition: width 2s;
            -o-transition: width 2s;
            transition: width 2s;
        }
div:hover{
            width:300px;
        }

 


  • 2020-05-20 22:29:05

    javascript中为何在匿名function函数后面还外加

    它可以解释成为“匿名函数自调用”,也就是说,定义一个匿名函数,然后马上调用它(因为它是匿名的,如果不立即调用就获取不到该函数的引用了)。通常它被应用在一些大型的JS框架中(如上面所说的),因为这个匿名函数的函数体相当于提供一个匿名的名字空间,这样就不会再与用户自定义的JS函数、变量、对象发生冲突了。尽管JS没有显示地提供命名空间的定义和使用机制,但这种匿名方式却不失为是一种很好的解决命名空间问题的方法。

  • 2020-05-20 22:30:14

    js中利用prototype给类添加方法

    你可能会想,这不就是个简单的函数声明?没错,这个函数就是一个类的定义的实现。如何使用这个类呢?看下面的代码:var cls1 = new MyClass(); 这样,利用new就可以生成MyClass的一个实例了。所以在js中可以说函数就是类,类就是函数。

  • 2020-05-21 10:56:53

    fixed z-index失效

    作为一个假的前端,在调试一个页面时出现了如下bug。 左侧的菜单固定为fixed时,二级菜单无法设置有效的z-index,导致菜单隐藏在页面元素之下,明明页面元素的z-index是1,但是无论把菜单的z-index设置为多大,都不管用。

  • 2020-05-24 08:10:18

    echarts标题(title)配置

    show:true,//显示策略,默认值true,可选为:true(显示) | false(隐藏) text: '主标题',//主标题文本,'\n'指定换行 link:'',//主标题文本超链接,默认值true target: null,//指定窗口打开主标题超链接,支持'self' | 'blank',不指定等同为'blank'(新窗口) subtext: '副标题',//副标题文本,'\n'指定换行 sublink: '',//副标题文本超链接