文章目录
- 一、transform的基础知识
- transform可以分为四类变形:
- (1)第一类变形 旋转变形 rotate()
- (2)第二类变形 缩放变形 scale()
- (3)第三类变形 平移变形 translate()
- (4)第四类变形 扭曲变形 skew()
- 二、示例
- 1.rubberBand
- 2.shake
- 3.tada
- 总结
一、transform的基础知识
变形的参考点是图形的中心点
transform-origin: X轴位置 Y轴位置;
复制
变形只是对图形做修改,不会对盒子占据的空间做修改!
多个变形可以同时使用
transform: 变形1 变形2…;
注意:变形的前后顺序会影响最终的变形效果!!!
transform可以分为四类变形:
(1)第一类变形 旋转变形 rotate()
transform:rotate();//默认是延Z轴旋转 transform:rotateX(); transform:rotateY(); transform:rotateZ();
复制
(2)第二类变形 缩放变形 scale()
transform:scale();//默认写一个值,会同时生效在X轴和轴 transform:scaleX(); transform:scaleY();
复制
(3)第三类变形 平移变形 translate()
transform:translate();//默认写一个值,会同时生效在X轴和轴 transform:translateX() transform:translateY();
复制
translate()如果写百分比,记住,这个百分比是参考自身的高度或者宽度
(4)第四类变形 扭曲变形 skew()
transform:skew();//默认写一个值,会同时生效在X轴和轴 transform:skewX(); transform:skewY();
复制
二、示例
本次示例并没有提供css样式
1.rubberBand
代码如下(示例):
@keyframes rubberBand { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(0.5) scaleX(1.3); } 60% { transform: scaleY(1.2) scaleX(0.8); } 70% { transform: scaleY(0.6) scaleX(1.2); } 80% { transform: scaleY(1.2) scaleX(0.8); } 90% { transform: scaleY(0.6) scaleX(1.2); } 100% { transform: scaleY(1) scaleX(1); } } .rubberBand{ animation: rubberBand 1s ease; } //给要变形的盒子,添加类名就可以了
复制
2.shake
代码如下(示例):
@keyframes shake { 0% { transform: translateX(0px) } 10% { transform: translateX(-20px) } 20% { transform: translateX(20px) } 30% { transform: translateX(-20px) } 40% { transform: translateX(20px) } 50% { transform: translateX(-20px) } 60% { transform: translateX(20px) } 70% { transform: translateX(-20px) } 80% { transform: translateX(20px) } 90% { transform: translateX(-20px) } 100% { transform: translateX(0px) } } .shake{ animation: shake 1s ease; }
复制
3.tada
代码如下(示例):
@keyframes tada { 0% { transform: scale(1) rotateZ(0deg); } 20% { transform: scale(0.8); } 40% { transform: scale(1.1) rotateZ(-10deg); } 50% { transform: scale(1.1) rotateZ(10deg); } 60% { transform: scale(1.1) rotateZ(-10deg); } 70% { transform: scale(1.1) rotateZ(10deg); } 80% { transform: scale(1.1) rotateZ(-10deg); } 90% { transform: scale(1.1) rotateZ(10deg); } 100% { transform: scale(1) rotateZ(0deg); } } .tada{ animation: tada 1s; }
复制
总结
本次带大家简单了解了一下transform中的2d变形效果,希望可以给大家带来思路上的灵感。