最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

CSS知识总结(九)

来源:懂视网 责编:小采 时间:2020-11-27 15:39:23
文档

CSS知识总结(九)

CSS知识总结(九):CSS常用样式 10.自定义动画 1)关键帧(keyframes) 被称为关键帧,其类似于Flash中的关键帧。 在CSS3中其主要以“@keyframes”开头,后面紧跟着是动画名称加上一对花括号“{…}”,括号中就是一些不同时
推荐度:
导读CSS知识总结(九):CSS常用样式 10.自定义动画 1)关键帧(keyframes) 被称为关键帧,其类似于Flash中的关键帧。 在CSS3中其主要以“@keyframes”开头,后面紧跟着是动画名称加上一对花括号“{…}”,括号中就是一些不同时

CSS常用样式

10.自定义动画

  1)关键帧(keyframes)

    被称为关键帧,其类似于Flash中的关键帧。

    在CSS3中其主要以“@keyframes”开头,后面紧跟着是动画名称加上一对花括号“{…}”,括号中就是一些不同时间段样式规则。

    语法:@keyframes animationname {keyframes-selector {css-styles;}}

    animationname:定义动画的名称。

    keyframes-selector:以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。建议定义百分比选择器。

    css-styles:通过 @keyframes 规则,您能够创建动画,就是将一套 CSS 样式逐渐变化为另一套样式,并且能够多次改变这套 CSS 样式。

    兼容性:目前浏览器都不支持@keyframes规则,需要加上前缀"-moz-","-o-","-webkit-"。

    例子:

@-webkit-keyframes FromLeftToRight{ /* Safari 和 Chrome */
 0% {left:0;}
 100% {left:800px;} 
}
@-moz-keyframes FromLeftToRight{ /* Firefox */
 0% {left:0;}
 100% {left:800px;} 
}
@-o-keyframes FromLeftToRight{ /* Opera */
 0% {left:0;}
 100% {left:800px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:800px;} 
}

  2)动画名称(animation-name)

    元素所应用的动画名称,必须与规则@keyframes配合使用,因为动画名称由@keyframes定义。

    animation-name :none |

    :定义一个或多个动画名称,如果是多个,用逗号分隔。

    例子:

div{
 -webkit-animation-name:FromLeftToRight;
 -moz-animation-name:FromLeftToRight;
 -o-animation-name:FromLeftToRight;
 animation-name:FromLeftToRight;
}
@-webkit-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:800px;} 
}
@-moz-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:800px;} 
}
@-o-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:800px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:800px;} 
}

  3)动画时间(animation-duration)

    指定对象动画的持续时间

    animation-duration:

  例子 源代码:

/* CSS代码 */
.duration{
 width:100px;
 height:100px;
 background:#000;
 position:relative;
 -webkit-animation-name:FromLeftToRight;
 -webkit-animation-duration:3s;
 -moz-animation-name:FromLeftToRight;
 -moz-animation-duration:3s;
 animation-name:FromLeftToRight;
 animation-duration:3s;
}
@-webkit-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@-moz-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:500px;} 
}

 

请按F5刷新动画(矩形用3秒向右移动500px)

  效果:

请按F5刷新动画(矩形用3秒向右移动500px)

  4)动画的过渡速度(animation-timing-function)

    animation-timing-function : ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(n,n,n,n)

    ①ease : 默认值,逐渐变慢(等于 cubic-bezier(0.25,0.1,0.25,1))

    ②linear : 匀速过渡效果(等于 cubic-bezier(0,0,1,1))

    ③ease-in : 加速的过渡效果(等于 cubic-bezier(0.42,0,1,1))

    ④ease-out : 减速的过渡效果(等于 cubic-bezier(0,0,0.58,1))

    ⑤ease-in-out : 加速然后减速(等于cubic-bezier (0.42, 0, 0.58, 1))

    ⑥cubic-bezier(n,n,n,n):在 cubic-bezier 函数中定义自己的值,可能的值是 0 至 1 之间的数值。

  例子 源代码:

/* CSS代码 */
.function{
 width:100px;
 height:100px;
 background:#ccc;
 position:relative;
 margin:5px;
 -webkit-animation-name:FromLeftToRight;
 -webkit-animation-duration:3s;
 -moz-animation-name:FromLeftToRight;
 -moz-animation-duration:3s;
 animation-name:FromLeftToRight;
 animation-duration:3s;
}
.ease-in{
 -webkit-animation-timing-function:ease-in;
 -moz-animation-timing-function:ease-in;
 animation-timing-function:ease-in;
}
.ease-out{
 -webkit-animation-timing-function:ease-out;
 -moz-animation-timing-function:ease-out;
 animation-timing-function:ease-out;
}
@-webkit-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@-moz-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:500px;} 
}

 

请按F5刷新动画(两个矩形同样在3秒用不同的速率向右移动500px)

ease-in
ease-out

  效果:

请按F5刷新动画(两个矩形同样在3秒用不同的速率向右移动500px)

ease-in ease-out

  5)动画延迟时间(animation-delay)

    指定对象动画延迟的时间

    animation-delay:

  例子 源代码:

/* CSS代码 */
.delay{
 width:100px;
 height:100px;
 background:#000;
 position:relative;
 -webkit-animation-name:FromLeftToRight;
 -webkit-animation-duration:3s;
 -webkit-animation-delay:2s;
 -moz-animation-name:FromLeftToRight;
 -moz-animation-duration:3s;
 -moz-animation-delay:2s;
 animation-name:FromLeftToRight;
 animation-duration:3s;
 animation-delay:2s;
}
@-webkit-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@-moz-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:500px;} 
}

 

请按F5刷新动画(刷新后请等待2秒启动动画)

  效果:

请按F5刷新动画(刷新后请等待2秒启动动画)

  6)动画执行次数(animation-iteration-count)

    animation-iteration-count:infinite |

    infinite表示无限次数,number指定循环次数。

  例子 源代码:

/* CSS代码 */
.infinite{
 width:100px;
 height:100px;
 background:#000;
 position:relative;
 -webkit-animation-name:FromLeftToRight;
 -webkit-animation-duration:3s;
 -webkit-animation-iteration-count:infinite; 
 -moz-animation-name:FromLeftToRight;
 -moz-animation-duration:3s;
 -moz-animation-iteration-count:infinite; 
 animation-name:FromLeftToRight;
 animation-duration:3s;
 animation-iteration-count:infinite;
}
@-webkit-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@-moz-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:500px;} 
}

 

动画全自动无限循环播放

  效果:

动画全自动无限循环播放

  7)动画的顺序(animation-direction)

    设置对象动画在循环中是否反向运动

    animation-direction : normal | reverse | alternate | alternate-reverse

    normal:正常方向

    reverse:反方向运行

    alternate:动画先正常运行再反方向运行,并持续交替运行

    alternate-reverse:动画先反运行再正方向运行,并持续交替运行

  例子 源代码:

/* CSS代码 */
.box{
 width:100px;
 height:50px;
 background:#ccc;
 margin:5px;
 position:relative;
 -webkit-animation-name:FormLeftToRight;
 -moz-animation-name:FormLeftToRight;
 animation-name:FormLeftToRight;
 -webkit-animation-duration:5s;
 -moz-animation-duration:5s;
 animation-duration:5s;
 -webkit-animation-iteration-count:infinite;
 -moz-animation-iteration-count:infinite;
 animation-iteration-count:infinite;
}
.reverse{
 -webkit-animation-direction:reverse;
 -moz-animation-direction:reverse;
 animation-direction:reverse;
}
.alternate{
 -webkit-animation-direction:alternate;
 -moz-animation-direction:alternate;
 animation-direction:alternate;
}
.alternate-reverse{
 -webkit-animation-direction:alternate-reverse;
 -moz-animation-direction:alternate-reverse;
 animation-direction:alternate-reverse;
}
@-webkit-keyframes FormLeftToRight{
 0%{left:0;}
 100%{left:500px;}
}
@-moz-keyframes FormLeftToRight{
 0%{left:0;}
 100%{left:500px;}
}
@keyframes FormLeftToRight{
 0%{left:0;}
 100%{left:500px;}
}
 

 

四种不同的顺序

normal
reverse
alternate
alternate-reverse

  效果:

四种不同的顺序

normal reverse alternate alternate-reverse

  8)动画的状态(animation-play-state)

    设置对象动画的状态

    animation-play-state:running | paused

    running:运动

    paused:暂停

  例子 源代码:

/* CSS代码 */
.state{
 width:100px;
 height:100px;
 background:#000;
 position:relative;
 -webkit-animation-name:FromLeftToRight;
 -webkit-animation-duration:3s;
 -webkit-animation-iteration-count:infinite; 
 -moz-animation-name:FromLeftToRight;
 -moz-animation-duration:3s;
 -moz-animation-iteration-count:infinite; 
 animation-name:FromLeftToRight;
 animation-duration:3s;
 animation-iteration-count:infinite;
}
.state:hover{
 -webkit-animation-play-state:paused;
 -moz-animation-play-state:paused;
 animation-play-state:paused;
}
@-webkit-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@-moz-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:500px;} 
}

 

鼠标移动到矩形上可以暂停动画

  效果:

鼠标移动到矩形上可以暂停动画

  9)动画时间之外的状态(animation-fill-mode)

    设置对象动画时间之外的状态

    animation-fill-mode : none | forwards | backwards | both

    none:默认值。不设置对象动画之外的状态

    forwards:设置对象状态为动画结束时的状态

    backwards:设置对象状态为动画开始时的状态

    both:设置对象状态为动画结束或开始的状态

  例子 源代码:

/* CSS代码 */
.mode{
 width:100px;
 height:100px;
 background:#000;
 position:relative;
 -webkit-animation-name:FromLeftToRight;
 -webkit-animation-duration:3s;
 -webkit-animation-fill-mode:forwards;
 -moz-animation-name:FromLeftToRight;
 -moz-animation-duration:3s;
 -moz-animation-fill-mode:forwards;
 animation-name:FromLeftToRight;
 animation-duration:3s;
 animation-fill-mode:forwards;
}
@-webkit-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@-moz-keyframes FromLeftToRight{
 0% {left:0;}
 100% {left:500px;} 
}
@keyframes FromLeftToRight{ 
 0% {left:0;}
 100% {left:500px;} 
}

 

请按F5刷新动画(动画结束后停在结束位置)

  效果:

请按F5刷新动画(动画结束后停在结束位置)

  10)动画复合属性(animation)

    通过 animation ,我们能够创建自定义动画,这可以在许多网页中取代动画图片gif、Flash 动画以及 JavaScript。

    animation: || || || || || || || [ ,*]

    

  利用学过的动画样式,制作一个下滑菜单栏

  源代码:

/* CSS代码 */
.dropmenu{
 width:100px;
 height:30px;
 line-height:30px;
 text-align:center;
 background:green;
 border-radius:10px;
 overflow:hidden;
}
.dropmenu a{
 font-family:"微软雅黑";
 font-size:18px;
 color:#fff;
 text-decoration:none;
}
.dropmenu ul{
 list-style-type:none;
 padding:0;
 margin:0;
}
.dropmenu ul li{
 background:#808080;
}
.dropmenu:hover{
 -webkit-animation-name:SlideDown;
 -moz-animation-name:SlideDown;
 animation-name:SlideDown;
 -webkit-animation-duration:1s;
 -moz-animation-duration:1s;
 animation-duration:1s;
 -webkit-animation-fill-mode:forwards;
 -moz-animation-fill-mode:forwards;
 animation-fill-mode:forwards;
}
@-webkit-keyframes SlideDown{
 0% {height:30px;}
 100% {height:155px;}
}
@-moz-keyframes SlideDown{
 0% {height:30px;}
 100% {height:155px;}
}
@keyframes SlideDown{
 0% {height:30px;}
 100% {height:155px;}
}

  效果:

菜单栏
  • AAA
  • AAA
  • AAA
  • AAA
  •   

        

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    CSS知识总结(九)

    CSS知识总结(九):CSS常用样式 10.自定义动画 1)关键帧(keyframes) 被称为关键帧,其类似于Flash中的关键帧。 在CSS3中其主要以“@keyframes”开头,后面紧跟着是动画名称加上一对花括号“{…}”,括号中就是一些不同时
    推荐度:
    标签: css (css) 知识总结
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top