2016.3.17__CSS3动画__第十一天

CSS3随机多背景随机圆角等效果 这篇是在廖雪峰的博客学习的一个效果。首先介绍的是,什么是蝉原则? (百度图片)“蝉原则”,英文称作“cicada principle”,是一种让事物的重复出现符合“自然随机性”的规则,为什么这么说呢?“蝉原则”源自于北美,中国似乎并未有这样的说法,这背后是有有故事的:北美和东亚蝉的种群是不一样的,在东亚蝉的幼虫生活在土中3年5年或7年;但是北美有一种周期蝉(Magicicada),其生命周期为十三 阅读详情

CSS3动画

如果您觉得这篇文章还不错,可以去H5专题介绍中查看更多相关文章。

这里写图片描述

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

今日课程预览

这里写图片描述

1. 关键帧

如需在 CSS3 中创建动画,您需要学习 @keyframes 规则。

@keyframes 规则用于创建动画。

在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。

前面我们在使用transition制作一个简单的transition效果时,

我们包括了初始属性和最终属性,一个开始执行动作时间和一个延续动作时间以及动作的变换速率,

其实这些值都是一个中间值,如果我们要控制的更细一些,

比如说我要第一个时间段执行什么动作,第二个时间段执行什么动作

(换到flash中说,就是第一帧我要执行什么动作,第二帧我要执行什么动作),

这样我们用Transition就很难实现了,此时我们也需要这样的一个“关键帧”来控制。

那么CSS3中就是由“keyframes”这个属性来实现这样的效果。下面我们一起先来看看Keyframes:

Keyframes的语法规则,

@keyframes name1{
    0%{属性名:属性值;属性名:属性值;}
    29%{属性名:属性值;属性名:属性值;}
    50%{属性名:属性值;属性名:属性值;}
    100%{属性名:属性值;属性名:属性值;}
}

我们来解释一下语法规则:

必须以@keyframes开头,后面加动画的名称,名称由自己定义,语义化最好,

后面加一对大括号,里面可以写许多个百分比,百分比后面加一对大括号,

里面写要改变的属性及属性值,用分号隔开。

此外可以用from代替0%,表示初始状态,用to代替100%,表示结束状态。即写成如下样式:

@keyframes name1{
    from{属性名:属性值;属性名:属性值;}
    29%{属性名:属性值;属性名:属性值;}
    50%{属性名:属性值;属性名:属性值;}
    to{属性名:属性值;属性名:属性值;}
}

2. 浏览器前缀

虽然keyframes已经成为了w3c的标准属性,但是为了兼容,

我们需要在谷歌和Safari等浏览器需加上内核前缀。

一般我们设置属性的时候一般都设置五种。

  • -webkit- : 内核(google chrome、safari、猎豹、360极速版)
  • x5 : QQ 浏览器、微信
  • ms : 微软 IE 浏览器
  • -o-: Opera(欧朋浏览器,转入谷歌阵营了)
  • -moz-: 火狐浏览器(netscape)

3.动画 animate

当您在 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果。

通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器:

  • 规定动画的名称
  • 规定动画的时长

注释:您必须定义动画的名称和时长。如果忽略时长,则动画不会允许,因为默认值是 0。

属性描述
@keyframes规定动画。
animation所有动画属性的简写属性,除了 animation-play-state 属性。
animation-name规定 @keyframes 动画的名称。
animation-duration规定动画完成一个周期所花费的秒或毫秒。默认是 0。
animation-timing-function规定动画的速度曲线。默认是 “ease”。
animation-delay规定动画何时开始。默认是 0。
animation-iteration-count规定动画被播放的次数。默认是 1。
animation-direction规定动画是否在下一周期逆向地播放。默认是 “normal”。
animation-play-state规定动画是否正在运行或暂停。默认是 “running”。
animation-fill-mode规定对象动画时间之外的状态。

3.1 动画属性

  1. 动画名称 (animation-name)。名称是区别事物的一种最好的办法,像每个人都有自己的名字一样,我们的动画也有自己的名称,在上面学习keyframes时,我们提到了需要自己定义帧的名字,此处的名称就是刚才我们定义帧时候取的名字,是一个必不可少的属性。

  2. 动画执行时间 (animation-duration)。在keyframes阶段我们提到了百分比指的是动画执行时间的百分比,所以动画的持续时间也是一个必不可少的属性。单位是秒或者毫秒。

  3. 动画执行次数(animation-iteration-count)。动画的执行时间不可能是无限的,但是我们有时候需要这个动画一直执行下去,这时我们可以定义动画的执行次数为无限次,当然你也可以定义3次、4次、5、6、7、8等等次,当然定义多少次要看你的需要。
    -webkit-animation-iteration-count: 10;(无限次为infinite)

  4. 动画变换速率(animation-timing-function)。实际上就是动画的播放方式,它和transition中的transition-timing-function一样,具有以下几种变换方式:ease , ease-in , ease-in-out , linear , cubic-bezier,cubic-bezier指的是贝塞尔曲线,稍后会讲这一部分的内容。

  5. 延迟(animation-delay)。一个页面中可能有许多的动画,有的时候我们想有的先播放,有的后播放,那么我们怎么实现这样的效果呢。animate里面引进了一个属性叫做延迟,它规定这个动画可以在延迟制定时间后再执行。单位是秒或者毫秒。

  6. 运动方向(animation-direction)。用来指定动画播放的方向,其只有两个值,默认值为normal,如果设置为normal时,动画的每次循环都是向前播放;另一个值是alternate,他的作用是,动画播放在第偶数次向前播放,第奇数次向反方向播放。

  7. 动画的播放状态(animation-play-state)。其主要有两个值,running和paused其中running为默认值。他们的作用就类似于我们的音乐播放器一样,可以通过paused将正在播放的动画停下了,也可以通过running将暂停的动画重新播放,我们这里的重新播放不一定是从元素动画的开始播放,而是从你暂停的那个位置开始播放。这个属性很少有内核支持,所以只是稍微提一下就好。

  8. 动画时间之外的状态(animation-fill-mode)。我们日常经常使用的是:forwards,当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。除此之外还有三个值,分别是none:不改变默认行为。backwards:在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。both:向前和向后填充模式都被应用。

3.2 样例代码

所有动画属性串联在一起的时候,属性的排列次数是

animation: 动画名称+动画执行时间+动画变换速率+延迟+动画执行次数+运动方向

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            .animate{
                width: 100px;
                height: 100px;
                background: pink;
                animation: name1 4s linear 2s infinite alternate;
                -webkit-animation: name1 4s linear 2s infinite alternate;
            }
            @keyframes name1{
                0%{width: 100px;}
                29%{width: 200px;}
                50%{width: 50px;}
                100%{width: 100px;}
            }
        </style>
    </head>
    <body>
        <div class="animate"></div>
    </body>
</html>

4. 第三方库 animate.css

如果每次写动画都要自己去写每一个运动的过程会是一件非常麻烦的事,

那么能不能有一个库存在,里面有非常非常多的动画,

每次我们想要用动画的时候只需要去这个库里面提取出来,这样的话就会非常方便,

也是出于这样的考虑,第三方库animate.css出现了,它里面封装了非常多的动画,

我们想要用的时候直接调用里面的动画就好了,接下来我们就来看动画的第三方库animate.css。

我们已经知道这是个包含了很多动画的库,

这里提供了链接,http://www.17sucai.com/pins/demoshow/9411,

我们可以里面看到不同的动画名称对应的不同效果,那么我们怎么使用这里面的动画呢,

它的使用方法非常简单,我们具体来看:

4.1 引入第三方库

    <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>第三方库</title>
        <link rel="stylesheet" type="text/css" href="animate.min.css"/>
    </head>
    <body>
    </body>
</html>

4.2 指定具体动画效果

方法一:

格式:animation:”name“ time;

例: animation:”flip” 2s;

表示这个名字叫做flip的动画执行时间是2s,可以看到这种方法和我们刚才学习的是一样的。

完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="animate.min.css">
    <style type="text/css">
    div{
        height: 200px;
        width: 200px;
        background-color: #ccc;
        -webkit-animation: "flip" 2s;
        -o-animation: "flip" 2s;
        animation: "flip" 2s;
    }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

方法二:

格式:<div class=“name animated”></div>

例: <div class=“flip animated”></div>

完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="animate.min.css">
    <style type="text/css">
    div{
        height: 200px;
        width: 200px;
        background-color: #ccc;
    }
    </style>
</head>
<body>
    <div class="flip animated"></div>
</body>
</html>

5. 贝塞尔曲线

我们学transition的时候,有一个属性叫做transition-timing-function,

这个属性规定了效果的速度曲线,里面有一些属性值,

  • 匀速运动linear
  • 速度逐渐变慢ease
  • 先慢后快ease-in
  • 先快后慢ease-out
  • 先慢后快再慢ease-in-out

除此之外我们还有一个参数值叫做cubic-bezier,该值允许你去自定义一个时间曲线,这就是我们要讲的贝塞尔曲线。

贝塞尔曲线(The Bézier Curves),是一种在计算机图形学中相当重要的参数曲线(2D,3D的称为曲面)。

贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所发表,他运用贝塞尔曲线来为汽车的主体进行设计。

我们在日常开发中最常用的就是二次曲线。

偶尔会使用到三次曲线。

当然更高深的也有,但是咱们不会涉及到。

咱们在日常开发中只需要会确定锚点和控制点的位置就好。

更多的尝试可以参考这个网站,我们不需要大家会精确定位每一个点,

只需要大家能够大概猜出这个点具体在哪个位置就可以啦。

http://cubic-bezier.com/#0,0,.58,1

代码实现:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            .animate{
                width: 200px;
                height: 200px;
                background: pink;
                transition: width 3s cubic-bezier(1,.02,.31,.9);
                -webkit-transition: width 3s cubic-bezier(1,.02,.31,.9);

            }
            .animate:hover{
                width: 1000px;
            }
        </style>
    </head>
    <body>
        <div class="animate"></div>
    </body>
</html>
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇 shardingsphere 5.5.0移除了sm4算法,自己加上即可。增加spi扩展org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm增加以下代码:SM4算法代码/***/static {@Getter@Overrideif (! 阅读详情

相关推荐

光伏储能交直流微电网Matlab/Simulink仿真模型

首先是光伏储能交直流微电网,这个也是我还是之前在硕士期间在做光伏扶贫项目时候搭建的仿真,仿真由光伏、蓄电池及负载组成的独立直流微电网,提出电压和电流分段式协同控制策略。接下来我将主要更新关于光伏、风电、储能微电网系统相关的内容,包括具体建模和控制。

2401_89292556的博客 785

css3动画animation属性大全

animation属性语法:animation: name duration timing-function delay iteration-count direction fill-mode play-state;例:animation: myanimation 2s linear 1s infinite forwards;animation 属性是一个简写属性,用于设置动画属性:animati...

低调哥的博客 1万+

[MTK][Android P]如何去掉差分包中的preloader分区

最近碰到一个问题,在进行差分升级的时候,会因为某些原因导致preloader hash值不匹配,升级失败,所以需要在差分升级的时候不升级preloader。 解决的方法,就是在制作AB分区的差分升级包的时候,把目标zip解压出来,把ab_partitions.txt中的分区名去掉,同时把preloader.img去掉 修改如下: Project/build/tools/releasetool...

thonmin的专栏 1434

CSS3动画方向属性详解

alternate-reverse动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放。alternate动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。animation-direction 属性定义是否停止播放动画。注意:如果把动画设置为只播放一次,则该属性没有效果。initial设置该属性为它的默认值。学习更多技术知识相关内容欢迎关注小编!normal默认值。inherit从父元素继承该属性。reverse动画反向播放。**CSS 语法**

longzorg_cn的博客 936

微信公众号开发实战:如何高效推送模板消息(附完整代码示例)

本文详细解析了微信公众号开发中模板消息推送的核心流程与实战技巧。文章从OpenID获取、模板申请、Access Token缓存管理到完整PHP代码实现,逐步拆解了高效推送模板消息的关键步骤,并提供了可直接复用的代码示例,帮助开发者快速集成这一提升用户体验的重要功能。

weixin_29009971的博客 794

智能网联汽车电子电气架构(下)

从资产的表现形式, 可以分为数据、 软件、 硬件、 服务等, 而从需要保护的业务过程和活动、 所关注信息的角度, 资产类型可包括基于 ECU 的控制功能、 与特定车辆相关的信息、 车辆状态信息、 用户信息、 配置信息、 特定的软件、 内容等。面向新一代 EEA 的安全需求, 基于芯片提供的 OTP, 或SHE\HSM 的安全存储能力, 实现系统关键数据(身份、 密钥等关键信息) 的安全存储, 保证系统的关键数据不被盗取、 破坏、 改写。结合攻击者的动机与识别出的系统用例, 分析对汽车电子系统可能的攻击。

m0_58838529的博客 1473

刷新,加载动画

<style> .localbox-right .icon-loadmore { position: absolute; top: 8rpx; right: 116rpx; width: 24rpx; height: 24rpx; /* background-color: pink; */ animation:haha1 .8s linear...

weixin_42060658的博客 506

网络攻防技术——MD5碰撞试验

一、题目 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况; b)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。 c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。 d)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的M

学习记录 3621

CSS3变换动画

CSS3变换动画 指定三维视角 perspective 属性定义 3D 元素距视图的距离,以像素计。 当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。 舞台:{ perspective:1000px; } 容器:{ transform-style:preserve-3d; -webkit-transform-style:p

小九的博客 614

论文阅读:Visual Relationship Detection with Language Priors

Visual Relationship Detection with Language Priors(ECCV2016) 文章   尽管大多数的relationship并不常见,但是它们的object和predicate却更频繁地独立出现。paper用这个insight分别独立训练训练object和predicate的模型,然后再进行组合来预测relationship。Visual relatio...

Kivee的博客 2877

别再为3D抓取发愁了!Halcon手眼标定保姆级教程(Eye-to-Hand模式,含完整代码)

本文提供Halcon手眼标定的保姆级教程,详细讲解Eye-to-Hand模式下的3D抓取实现方法。从硬件配置、坐标系系统到标定流程和核心算法,涵盖完整代码和实战经验,帮助用户快速掌握工业自动化中的精准抓取技术。

weixin_42523711的博客 270

CSS3 动画

1、CSS3 @keyframes 规则   如需在 CSS3 中创建动画,您需要学习 @keyframes 规则。@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。2、浏览器支持   Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 规则和 animatio...

山水子农 3555

skywalking各项指标说明

skywalking各项指标说明

没有简介 2488

CSS3动画

现如今,CSS3动画在页面中的应用越来越广泛,它能使页面呈现出更加炫酷的效果。下面,总结一下CSS3动画的一些属性和特点。CSS3的动画属性主要包含两部分,transition和animation。transition transition根据其含义,为:过渡。即由一种表现的状态变为另一种表现的状态,其中状态包括尺寸大小,颜色,字体,位置等属性的改变。 transition是个复合属性,和backg

lelewang123的博客 415

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

css3 序列帧动画抖动

页面需要一个动画,设计师给了动画的序列帧 项目由vue构建,使用css3做动画 html <div class="work_two_main"></div> style 使用媒体查询兼容PC端 // 两人工作 .work_two_main{ width: 375px; height: 367.5px; margin: 0...

weixin_30488313的博客 662

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

animation css 透明度逐渐_通过css3动画和opacity透明度实现呼吸灯效果

通过css3动画和opacity透明度实现呼吸灯效果发布时间:2019-08-09 15:29:54 作者:殷浩 我要评论这篇文章主要介绍了通过css3动画和opacity透明度实现呼吸灯效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧本文介绍了通过css3动画和opacity透明度实现呼吸灯效果的方法,分享给大家...

weixin_39818631的博客 523

2016-3-17

我刚刚开通了博客园 printf(“Today's Date:2016-3-17”); 转载于:https://www.cnblogs.com/yc609/p/5286343.html

aidanban5060的博客 117

css3参考文献,CSS3简介 - CSS3 入门教程

提起 CSS 我们不会太陌生,我们 Web 页面的样式离不开它,而 CSS3 是 CSS 技术升级版本。对于 CSS3 我们在前端开发的工作中有大量的应用,它主要就是对普通 CSS 样式的一种补充。如果说 HTML 标签是页面的骨架, CSS 是页面的皮肤, 那么 CSS3 就是页面的灵魂, 它丰富了页面的交互和显示效果。1. 什么是 CSS3 ?它其实是 CSS 不停升级的演变,早在 2001 ...

weixin_31297157的博客 943

css3 transform 平移,transform

不得不提到CSS3的transform,也就是变换。这篇文章概括了在实现时对transform的理解与总结。注:文中的图片多数截取自视频:线性代数的本质...3小时前改变的意思。在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix...2016年12月12日延迟时间)。figcaption标签,一般应用于图片...

weixin_29056781的博客 673

html 实现二维效果图,25个很酷CSS3效果欣赏

25个很酷CSS3效果欣赏5月 17, 2012评论 (3)Sponsor虽然在国内使用CSS3距离还是有些远,但是我们也要学习这些新技术,今天为大家分享一些很cool的CSS3特效案例,有些带教程,很值得学习的。从这些案例可以看出CSS3为设计师和前端人员减少了很多很多的代码,所以作为一个专业的网页设计师或是前端人员都应该了解和学习它们。CSS3 Tool Tips 提示动画给你的CSS3菜单增...

weixin_36488616的博客 657

html简单的文字自动出现效果,20个强大的CSS3文字效果展示

20个强大的CSS3文字效果展示8月 19, 2015评论 (5)Sponsor今天为大家分享20个强大的CSS3文字效果,这些文字效果都不是用PS或是AI等设计软件制作出来,全部用代码实现,只有你想不到,没有做不到!来一起看看这些优秀的CSS3文字案例,可以作为灵感参考,也可点进去学习这些代码的实现方法。注:如果用RSS阅读的用户,请返回设计达人网查看原文才能看到效果哦!多款CSS文字HOVER...

weixin_39517546的博客 990

html css图片效果,css,css3实现各种图片效果总结

按照常规的理解,处理图像的效果都应该是设计师的工具,甚至这些事情应该都交给PhotoShop之类的设计软件来完成。但是随着css技术的发展以及css3的出现,各大厂商的浏览器的兼容性越来越好,利用css技术来处理和实现图片的各种效果变得越来越便捷。css及css3中的各种属性将很容易的帮助我们实现各种想要的图片效果。这里我们就来谈一谈使用css和css3来实现各种图片效果。首先可以学习Gxl网相关...

weixin_42513215的博客 851

css布局--2016.3.17

关于css布局梳理一下几个知识点:1.css中,width,height指的是内容区域的宽度和高度,增加内边距,边框,外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。2.外,内边距的百分比数值:百分比是相对于其父元素的width计算的,宽度参照宽度这点毫无疑问,但高度参照的也是宽度。3.外边距合并:当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高

洋葱onion 851

jsp动画的前端天气组件库的设计与实现17o54--(程序+源码+数据库+调试部署+开发环境)

研究方法包括需求分析、系统设计、前端实现、后端实现、测试调试和部署上线等步骤。随着互联网技术的快速发展,用户对信息的获取方式要求越来越高,传统的天气展示方式往往缺乏动态性和互动性,难以满足用户对丰富、直观、生动信息展示的需求。该组件库旨在通过动画效果提升天气信息的展示效果,增强用户体验,同时提供便捷的城市信息查询、天气预报展示等功能,满足用户的多样化需求。本研究将采用JSP、HTML5、CSS3、JavaScript等前端技术,结合动画库(如Animate.css、GSAP等)实现动画效果。

sheji5423的博客 724

Html5 css3 左箭头,利用CSS3特性巧妙实现漂亮的DIV箭头

DIV箭头用于表现DIV内容的指向,是使用非常普遍的一种表现形式,例如新浪微博的消息转发:![](https://box.kancloud.cn/2016-08-02_57a05bce5c7df.gif)还有傲游网站的导航条:![](https://box.kancloud.cn/2016-08-02_57a05bce74be8.gif)像傲游账户上方这种箭头更需要多幅图片以表现箭头和hover的...

weixin_39975486的博客 625
上一篇: 2016.3.16__CSS3渐变_倒影_过渡_2D变形_3D变形__第十天
下一篇: 2016.3.17__ JavaScript基础_1__第十二天
MR_LP
博客等级 码龄11年 236粉丝 89原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值