动画效果html5,HTML5动画效果

本文详细介绍了HTML5中的2D、3D转换动画效果,包括移动、旋转、缩放和倾斜等,以及如何通过CSS3实现平滑的过渡效果。此外,还展示了如何创建简单的CSS3动画和利用column-count属性实现多列布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html5动画效果

这篇文章涉及到的内容有:

2d,3d的转换

过度效果

动画

多列

1.2d,3d转化

2d,3d转化是指对元素的外观进行一些操作,例如:

移动元素 旋转 缩放 倾斜 3d转换

接下来以代码来演示如何进行2d,3d平面的一些转换。

准备工作

我们先准备一个标准的html页面,并在其中添加两个相同大小的p元素,方便进行对比。

这是一个初始效果

准备改变的p

建立对应的样式表,并给两个p设置相同的样式:

p {

width: 100px;

height: 100px;

background-color: aqua;

}

在中预览(我用的是chrome浏览器),可以看到未进行变换的效果:

e633b205e2b2891065a65d7b2813a832.png

移动变换:

.p2 {

/*移动效果*/

transform: translate(100px, 100px);

-webkit-transform: translate(100px, 100px); /*safari chrome*/

-ms-transform: translate(200px, 100px); /*ie*/

-o-transform: translate(200px, 100px); /*opera*/

-moz-transform: translate(200px, 100px); /*firefox*/

}

这里是为了适配各种类型的浏览器,其实属性都是一样的,translate()接受两个参数,第一个参数是x方向移动的像素,第二个参数是y方向移动的像素,可以预览效果为:

586c918d028acb7286317e75fc458ee0.png

旋转

.p2 {

/*旋转*/

transform: rotate(180deg);

-webkit-transform: rotate(180deg); /*safari chrome*/

-ms-transform: rotate(180deg); /*ie*/

-o-transform: rotate(180deg); /*opera*/

-moz-transform: rotate(180deg); /*firefox*/

}

旋转是通过transform中的rotate()实现的,rotate()接受一个角度参数,以deg为单位旋转指定角度,效果如下图:

823f0da6beebb81eba22712e5ada0580.png

我这里旋转了180度,可以看到整个p实现了翻转的效果。

缩放

.p2 {

/*缩放 scale(width,height) 倍数*/

transform: scale(1, 2);

-webkit-transform: scale(1, 2); /*safari chrome*/

-ms-transform: scale(1, 2); /*ie*/

-o-transform: scale(1, 2); /*opera*/

-moz-transform: scale(1, 2); /*firefox*/

}

缩放是对元素进行尺寸的放大或者缩小,通过scale(arg1,arg2)实现,scale()接受两个参数,第一个参数是对x方向放大的倍数,第二个参数是对y方向放大的倍数,这里我保持x方向不变,y方向放大两倍,可以看到如下效果:

fb51b26e7c9427350b66503f18fcde68.png

倾斜

.p2 {

/*倾斜 skew(x轴倾斜角度,y轴倾斜角度)*/

transform: skew(20deg, 20deg);

-webkit-transform: skew(20deg, 20deg); /*safari chrome*/

-ms-transform: skew(20deg, 20deg); /*ie*/

-o-transform: skew(20deg, 20deg); /*opera*/

-moz-transform: skew(20deg, 20deg); /*firefox*/

}

倾斜效果通过transform属性中的skew()实现,skew()接受两个参数,一个是x轴旋转,第二个参数是以y轴方向旋转度数,我这里设置x,y方向均旋转20度,可以看到效果:

6a91c9dc8526e0f51c720691c6f28d74.png

3d转换

3d转换通过transform:rotatex()和rotatey()实现,通过给定度数进行3d平面的x轴和y轴的旋转,这里不做详细介绍。

2.过渡效果

上面介绍了一些简单的变换效果,但在进行测试的时候发现变换是直接完成的,这样并不会产生动画的感觉。只有再加上过渡效果后,才会有动画效果。我们需要做的是:

1.通过使用css3,给元素添加一些效果 2.css3过渡是元素从一种样式转换成另一种样式 3.设置属性

transition:设置四个过渡属性

transition-property:过度的名称

transition-duration:多度效果所花费的时间

transiition-timing-function:过渡效果的时间曲线

transition-delay:过渡效果开始延时时间

demo部分

我们先建立一个标准的html页面,其中只包含一个p,作为我们做动画变换的对象:

效果展示

然后对p的样式进行设置:

p {

width: 100px;

height: 100px;

background-color: aqua;

-webkit-transition: width 2s, height 2s, -webkit-transform 2s;

transition: width 2s, height 2s, transform 2s;

transition-delay: 2s;

-webkit-transition-delay: 2s;

}

我们设置了p的宽和高都为100px,并设置了背景颜色,接下来通过transition属性设置需要变换的属性以及变换时间,transition-delay设置延时时间为2s。接下来我们添加p的鼠标悬浮事件,当鼠标悬浮在p上时进行动画变换:

p:hover {

width: 200px;

height: 200px;

transform:rotate(360deg);

-webkit-transform: rotate(360deg);

}

当鼠标悬浮在上面时就可以看到动画效果了,这里我们设置p的宽度和高度都变为200px,并旋转360度,可以看到在鼠标悬浮在p上时,经过延时2s后,p会旋转放大,并在鼠标离开时恢复原样。

3.css3创建动画

通过css3也可以进行创建动画了,css3的动画需要遵循@keyframes规则,通过规定动画的时长以及规定动画的名称实现动画效果。光说不行,上代码!

动画效果

老规矩,还是准备一段标准的html文件,其中只包含一个p,同时建立样式表,进行样式以及动画的设定。

p {

width: 100px;

height: 100px;

background-color: red;

position: relative;

animation: anim 5s;

-webkit-animation: anim 5s;

}

这里设置p的位置为相对位置,这样好方便控制p的移动。动画部分通过animation属性设置,参数部分分别为:动画名称 动画时长 ,接下来设置@keyframe(关键帧)部分:

@keyframes anim {

0% {

background-color: red;

left: 0;

top: 0;

}

25% {

background-color: blue;

left: 200px;

top: 0;

}

50% {

background-color: #ccffcc;

left: 200px;

top: 200px;

}

75% {

background-color: #00ffff;

left: 0;

top: 200px;

}

100% {

background-color: red;

left: 0;

top: 0;

}

}

通过设置关键帧,每个关键帧部分改变了p的位置以及背景颜色,运行起来,可以看到p运动了一个正方向。为了添加浏览器适配,我们可以设置多个关键帧,只需要在前面添加如下代码即可:

@-webkit-keyframes anim

这样的动画只能播放一次,如果想一直播放可以这样设置animation的属性:

animation: anim 5s infinite alternate;

这样就实现一个简单的css3动画效果啦。

4.多列

在css3中,可以创建多列来对文本或者区域进行布局,通过设置属性column-count,column-gap,column-rule来实现分列效果,不多说,上效果图:样式代码:

.p1{

column-count: 3;

-webkit-column-count: 3;

column-gap: 50px;

-webkit-column-gap: 50px;

column-rule: 5px outset #ff0000;

-webkit-column-rule: 5px outset #ff0000;

}

column-count:设置列数;

column-gap:设置列与列之间间隔;

column-rule:设置分列规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值