CSS3之transform详解及示例(2d变形)

本文详细介绍了CSS中的transform属性,包括旋转、缩放、平移和扭曲四种基本变形,以及通过关键帧动画实现的rubberBand、shake和tada效果示例,旨在启发读者在设计中运用这些2D变换技巧。
摘要由CSDN通过智能技术生成


一、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变形效果,希望可以给大家带来思路上的灵感。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值