css3宽度变大动画_如何快速上手CSS3动画

3c09d14580250aaebe34ddfd1856ce0a.png

前言

说起CSS3动画,就必须说说 transform,translate,transition,animation这4个属性,transform主要定义元素的动作,比如旋转、倾斜、位移等,translate是transform里面的属性,用于2D/3D位移。后2个主要对动作进行描述,动画时间、速度曲线、次数等。

7b43e54c2c93c9d9efb105452556cfec.png

下面我用是一些简单的示例,让大家快速的入门上手:

快速开始第一个动画

<style>
.div1{
    width: 100px;
    background: red;
    /** 动画描述:宽度改变动画 用时 1s*/
    transition: width 1s;
}
.div1:hover{
    width: 200px;
    background: blue;
}
</style>

<div class="div1">动画</div>

6c81b22a520873756410328d2bcd9f94.gif

这里hover事件时改变宽度和背景颜色,用transition来描述动画,由于我们只对width进行了描述,所以背景色,鼠标指上去,会立马变色,并不会有渐变的过程。

这里为什么用transition而不用animation?那就要说说他们直接的区别了。

transition需要触发一个事件, 而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元素css的属性值,从而达到一种动画的效果。transition属性是一个简单的动画属性,非常简单非常容易用。可以说它是animation的简化版本,是给普通做简单网页特效用的。

现在明白了吧,因为我们用的hover事件,所以要用transition

下面请看第二个例子

快速开始第二个动画

<style>
.div1{
    width: 100px;
    background: red;
    /** 动画描述:宽度颜色改变动画 用时 1s infinite(无限次)*/
    animation: second 1s infinite;
    color: #fff;
}
@keyframes second{
    /**开始(可以用百分比表示)*/
    from {
      width: 100px;
      background: red;
    }
    /**结束(可以用百分比表示)*/
    to {
      width: 200px;
      background: blue;
    }

    /** or */
    /**开始*/
    0% {
      width: 100px;
      background: red;
    }
    /**中间可以加多个区间*/
    /**结束*/
    100% {
      width: 200px;
      background: blue;
    }
}
</style>

<div class="div1">动画</div>

f0914b6ffa61aa6b15a04907c7f87ab5.gif

这里动画从加载就开始执行,所以用了animation,改变宽度和背景色,用时1s,并且无限次循环执行。@keyframes规则是创建动画。 -webkit-(chrome/safari), -ms-(ie) 或 -moz-(firefox) 用于兼容不同浏览器。

快速开始第三个动画

<style>
.div1{
    width: 100px;
    background: red;
    animation: second 1s infinite;
    color: #fff;
}
@keyframes second{
    100% {
      transform: rotate(20deg);
    }
}
</style>

<div class="div1">动画</div>

aad6c0456af881106b83e2280ab702ea.gif

transform:rotate使其div元素2D旋转20°.当然你可以设置transform:rotateY, Y 轴的 3D 旋转。

223c22bac8cd8b140523e1a60c660b15.gif

你还可以设置transform: translate,进行2D,3D位移;

d80c1fe3a0b9f4d0c266f1386c38fab9.gif

transform: scale,进行2D,3D缩放;

72969c4a983524129353926ce5c61c40.gif

transform: skew,进行2D倾斜等等。

9067ac8f6ed62b4f60cb3e9d9b6346fb.gif

总结

好的动画效果,第一要素是:好的想法,有创意,才有好的成品;第二要素是:有好的实现解题思路,当有设计后,制作就需要想办法实现效果,剥茧抽丝,一步一步来;第三要素:不畏惧的心,勇敢尝试,多实践,多动手,灵感往往来与你写的过程中。

有了上面的小示例,相信小伙伴们也能自己写写简单的CSS3动画了,如果有疑问,可以评论留言,大家一起学习探讨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解了您的问题。那么,您想了解如何实现 CSS3 蒲公英飘动效果和云朵飘动效果动画。 对于蒲公英飘动效果,可以使用 CSS3动画和 transform 属性,具体实现步骤如下: 1.先在 HTML 中添加需要飘动的元素,比如 div。 2.使用 CSS3 的 transform 属性对元素进行旋转和平移,模拟蒲公英花瓣的飘动效果。 3.使用 CSS3动画属性对元素进行动画设置,使其在页面中飘动。 以下是一个基本的 CSS3 蒲公英飘动效果的示例代码: ```html <div class="dandelion"></div> <style> .dandelion { width: 20px; height: 20px; background-color: #ffda00; position: absolute; border-radius: 50%; transform-origin: center bottom; animation: dandelion 5s linear infinite; } @keyframes dandelion { 0% { transform: rotate(0deg) translate(0, 0); } 50% { transform: rotate(30deg) translate(0, -100px); } 100% { transform: rotate(0deg) translate(0, 0); } } </style> ``` 对于云朵飘动效果动画,可以使用 CSS3动画和 opacity 属性,具体实现步骤如下: 1.先在 HTML 中添加云朵的元素,比如 div。 2.使用 CSS3 的 opacity 属性设置元素的透明度,使其看起来像是云朵。 3.使用 CSS3动画属性对元素进行动画设置,使其在页面中飘动。 以下是一个基本的 CSS3 云朵飘动效果动画的示例代码: ```html <div class="cloud"></div> <style> .cloud { width: 100px; height: 50px; background-color: #fff; position: absolute; border-radius: 50%; opacity: 0.8; animation: cloud 20s linear infinite; } @keyframes cloud { 0% { left: -100px; } 100% { left: 100%; } } </style> ``` 希望这些代码可以帮助您实现您想要的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值