[Java web编程]第2章 HTML与css网页开发基础(动画)

版权声明:本文为博主自学期间所整理的文章,欢迎转载与分享,自学交流+V“zhangdonghui370” https://blog.csdn.net/sinat_34137390/article/details/81507001

一、CSS3变形是一些效果的集合

如平移、旋转、缩放、倾斜效果

每个效果都可以称为变形(transform),它们可以分别操控元素发生平移、旋转、缩放、倾斜等变化。

CSS3是通过transform实现的,它可以作用在款元素和行内元素上,该属性可以旋转、缩放、移动元素。

transform属性值: translate():平移,基于x,y坐标

scale():缩放函数

rotate():旋转函数,取值一个度数值

skew():倾斜函数,取值一个度数值

 

1、translate(tx,ty);

向右下方移动4px,8px

transform:translate(4px,8px);

-webkit-transform:translate(4px,8px);

-o-transform:translate(4px,8px);

-moz-transform:translate(4px,8px);

 

注意:

translateX(tx)

表示只设置X轴的位移

transform:translate(100px,0) <==> transform:translateX(100px)

 

translateY(ty)

表示只设置Y轴的位移

transform:translate(0,100px) <==> transform:translateY(100px)

 

 

 

  • 2、scale(sx,sy)  /skel/

 

默认值为 1,

0~0.99 元素缩小   >1 元素放大

 

元素放大1.5倍

transform:scale(1.5);

-webkit-transform:scale(1.5);

-o-transform:scale(1.5);

-moz-transform:scale(1.5);

 

注意:

scale()函数可以只接收一个值,也可以接收两个值,只有一个值时,第二个值默认和第一个值相等。

 

scaleX(sx):表示只设置X轴的缩放

transform:scale(2,0) <==> transform:scaleX(2)

 

scaleY(sy):表示只设置Y轴的缩放

transform:scale(0,2) <==> transform:scaleY(2)

 

  • 3、rotate(45deg)   /'rotet/

 

 

旋转并放大图片

transform : rotate(45deg) scale(1.5);

-webkit-transform : rotate(45deg)  scale(1.5);

-o-transform : rotate(45deg) scale(1.5);

-moz-transform : rotate(45deg) scale(1.5);

 

  • 4、skew(a) /skju

 

可以仅设置沿着X轴或Y轴方向倾斜

skewX(ax):表示只设置X轴的倾斜

skewY(ay):表示只设置Y轴的倾斜

向左下角倾斜

transform: skew(40deg,-20deg);

            -webkit-transform: skew(40deg,-20deg);

            -moz-transform: skew(40deg,-20deg);

            -o-transform: skew(40deg,-20deg);

 

小结:

rotate( )函数只是旋转,而不会改变元素的形状

skew( )函数是倾斜,元素不会旋转,会改变元素的形状

 

 

 

 

二、transition呈现的是一种过渡,是一种动画转换的过程,如渐现、渐弱、动画快慢等

CSS3 transition的过渡功能更像是一种“黄油”,通过一些CSS的简单动作触发样式平滑过渡

 

 

transition属性是个复合属性,可以简写,如下:

transition:[transition-property  transition-duration  transition-timing-function   transition-delay ]

transition包括四个属性值:

transition-property 指定过渡或动态模拟的css属性

transition-duration 指定完成过渡所需要的时间

transition-timing-function 指定过渡函数

transition-delay 指定过渡开始出现的延迟时间

 

1、transition-property 过度属性

定义转换动画的CSS属性名称

IDENT:指定的CSS属性(width、height、background-color属性等)

all:指定所有元素支持transition-property属性的样式,一般为了方便都会使用all

 

2.transition-duration 过渡所需的时间

定义转换动画的时间长度,即从设置旧属性到换新属性所花费的时间,单位为秒(s)

 

3、transition-timing-function 过渡动画函数

指定浏览器的过渡速度,以及过渡期间的操作进展情况,通过给过渡添加一个函数来指定动画的快慢方式

ease:速度由快到慢(默认值)

linear:速度恒速(匀速运动)

ease-in:速度越来越快(渐显效果)

ease-out:速度越来越慢(渐隐效果)

ease-in-out:速度先加速再减速(渐显渐隐效果)

 

4、transition-delay 过渡延迟时间

指定一个动画开始执行的时间,当改变元素属性值后多长时间去执行过渡效果

正值:元素过渡效果不会立即触发,当过了设置的时间值后才会被触发

负值:元素过渡效果会从该时间点开始显示,之前的动作被截断

0:默认值,元素过渡效果立即执行

 

 

 

 

实现图标旋转动画

 

#box img {

            -moz-transition: all 0.8s ease-in-out;

            -webkit-transition: all 0.8s ease-in-out;

            -o-transition: all 0.8s ease-in-out;

            transition: all 0.8s ease-in-out;

        }

        #box img:hover {

            -moz-transform: rotate(360deg) scale(1.5);

            -webkit-transform: rotate(360deg) scale(1.5);

            -o-transform: rotate(360deg) scale(1.5);

            -ms-transform: rotate(360deg) scale(1.5);

            transform: rotate(360deg) scale(1.5);

         }

 

三、animation动画简介

animation实现动画主要由两个部分组成

通过类似Flash动画的关键帧来声明一个动画

在animation属性中调用关键帧声明的动画实现一个更为复杂的动画效果

 

设置关键帧:

@keyframes spread {

   0% {width:0;}

   33% {width:23px;}

   66% {width:46px;}

   100% {width:69px;}

 }

 

一个简单的demo

 

动画的播放次数(animation-iteration-count)

值通常为整数,默认值为1

特殊值infinite,表示动画无限次播放

动画的播放方向(animation-direction)

normal,动画每次都是循环向前播放

alternate,动画播放为偶数次则向前播放

动画的播放状态(animation-play-state)

running将暂停的动画重新播放

paused将正在播放的元素动画停下来

猜你喜欢

转载自blog.csdn.net/sinat_34137390/article/details/81507001
今日推荐