css3的动画特效--元素旋转(transition,animation)
开发中,视觉要你实现一个元素的旋转问题,比如说如下图所示:

思路:首先动画动效肯定离不开anmimation动画。
和transition动画一样,animation动画也是CSS3动画的一种,这类动画可以理解为是一种关键帧动画,它可以预先为动画设置多个节点,在每个节点中含有不同的状态属性,通过使用animation动画我们可以得到更为复杂的动画效果。
注意:transition是为页面元素设置某个需要产生动画效果的属性,如宽度(width)、高度(height)、透明度(opacity),甚至3D旋转等,并使得这些属性的值在发生变化时产生相应的过渡效果。我们常常在制作类似按钮鼠标经过和移出效果时使用transition。通俗地说,transition是简化版的CSS3动画,而animation则是强化版的CSS3动画。在日常开发中transition的使用频率更高一些,我们往往只有在遇到transition无法解决的问题时,才会转而使用animation。
1、dom元素准备
准备一个span元素作为图标的载体(也可以使用其他元素,如div、a、button等)
<span class="close">Close</span>
使用设置了icon字体的伪元素来生成图标图案,首先引入这个font-family
@font-face {
font-family: 'icon-font';
src: url('font/flat-ui-icons-regular.ttf'), url('font/flat-ui-icons-regular.eot'), url('font/flat-ui-icons-regular.woff'), url('font/flat-ui-icons-regular.svg');
}
.close {
font-size: 0px;
/*使span中的文字不显示*/
cursor: pointer;
/*使鼠标指针显示为手型*/
display: block;
width: 20px;
height: 30px;
line-height: 42px;
border-radius: 50%;
/*使背景形状显示为圆形*/
background: #FFF;
color: #8b8ab3;
text-align: center;
}
.close::before {
content: "\e609";
font-family: 'icon-font';
speak: none;
font-size: 20px;
display: block;
}
添加了speak:none属性来为该元素增强可访问性,使得有阅读障碍的浏览者不会被插入的伪元素中的无意义字符所困扰。
2、transition使用
为鼠标指针的滑过状态设置一些动画效果。在此,我们希望当鼠标指针滑过时,图标在1秒内匀速旋转360度。我们在此先复习一下transition动画的用法。
.close:hover::before{
-webkit-transform:rotate(360deg);
transform:rotate(360deg);
-webkit-transition:-webkit-transform 1s linear;
transition:transform 1s linear;
}
代码中,我们使用了transform属性来实现图标的旋转,并且设置了transition动画,将变化的属性名称设置为transform。测试页面,现在我们将看到图标的旋转效果。
PS:在设置旋转属性时,需要加上deg作为度数单位,即使是旋转0度也需要同样添加这一单位。此外,transform只是一种变换属性,其本身不能生成动画效果,它只能通过与transition或animation属性的配合才能产生动画效果。
发现问题:当前的图标只会旋转一次,然后将停止下来。
3、animation属性
而如果我们希望图标能够一直不停旋转,则需要请出animation动画。使用animation动画的前提是先制作动画的各个关键帧。
@-webkit-keyframes spin {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
我们使用了keyframes关键字来定义了一个名为spin的关键帧动画,在该动画中使用了from关键字来指定动画的起始状态,to关键字来指定动画的结束状态。在起始状态中设置transform属性的旋转度为0度,在结束状态中设置该旋转度为360度。此外,我们还添加了-webkit-前缀以确保动画在webkit浏览器中的兼容性。
指定了spin关键帧动画后,我们就可以在图标中运用这一动画,代码如下:
.close:hover::before {
/*-webkit-transform: rotate(360deg);
transform: rotate(360deg);
-webkit-transition: -webkit-transform 1s linear;
transition: transform 1s linear;*/
-webkit-animation: spin 1s linear 1s 5 alternate;
animation: spin 1s linear infinite;
}
在以上代码中,我们设置了鼠标滑过状态下伪元素的animation属性,该属性的第一个参数是动画名称,即spin,第2个参数是动画时长,在此设置为1秒,第3个属性为速度曲线,在此设置为匀速运动,第4个属性infinite参数表示动画将无限循环,如果我们只希望动画循环一定次数,则可以将其修改为相应的数字,一次可以不用设置。
animation动画添加各种参数
(1)infinite参数,表示动画将无限循环。在速度曲线和播放次数之间还可以插入一个时间参数,用以设置动画延迟的时间。如希望使图标在1秒钟后再开始旋转,并旋转两次,代码如下
.close:hover::before{
-webkit-animation: spin 1s linear 1s 2;
animation: spin 1s linear 1s 2;
}
(2)alternate参数。animation动画中加入反向播放参数alternate。在加入该参数后,动画将在偶数次数时反向播放动画。
.close:hover::before{
-webkit-animation: spin 1s linear 1s 2 alternate;
animation: spin 1s linear 1s 2 alternate;
}
欢迎访问:
1、云商城isv系统http://isv.suningcloud.com/mpisv-web/index
2、云商城消费者门户http://www.suningcloud.com/promotion/index/experience_center.html
css3的动画特效--元素旋转(transition,animation)的更多相关文章
- css3的动画特效--元素旋转
开发中,视觉要你实现一个元素的旋转问题,比如说如下图所示: 思路:首先动画动效肯定离不开anmimation动画. 和transition动画一样,animation动画也是CSS3动画的一种,这类动 ...
- CSS3中动画属性transform、transition 和 animation
CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明: transform 从字面来看transform的释义为改变,使 ...
- CSS3中动画属性transform、transition和animation
Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能 ...
- CSS3与动画有关的属性transition、animation、transform对比
最近应公司需求,需要用css3做动画,终于把以前一直傻傻分不清楚的三个属性理解了. 索性在这里进行一个简单的对比,加深自己的记忆. 浏览器兼容性 CSS3 transform 属性 Internet ...
- 9种jQuery和css3图片动画特效代码演示
1.自由旋转的jQuery图片 演示和下载地址 2.css3阴影动画效果 演示和下载地址 3.拉窗帘特效图片 演示和下载地址 4.css3文字特效动画 演示和下载地址 5.css3时钟代码 演示和下载 ...
- css3的动画特效--动画序列(animation)
首先复习一下animation动画添加各种参数 (1)infinite参数,表示动画将无限循环.在速度曲线和播放次数之间还可以插入一个时间参数,用以设置动画延迟的时间.如希望使图标在1秒钟后再开始旋转 ...
- css3之动画属性transform、transition、animation
工作当中,会遇到很多有趣的小动画,使用css3代替js会节省工作量,css3一些属性浏览器会出现不兼容,加浏览器的内核前缀 -moz-. -webkit-. -o- 1.transform rotat ...
- CSS3点赞动画特效源码下载
体验效果:http://hovertree.com/texiao/jquery/62/ 效果图: 下载:http://hovertree.com/h/bjaf/1dvh9ym6.htm 特效库:htt ...
- CSS3 Hover 动画特效
根据 奇舞团:http://www.75team.com/archives/807 做的demo 根据视频中跟着做的 demo1: <!DOCTYPE html> <html lan ...
随机推荐
- 2017GCTF部分writeup
0x00:热身题 渗透测试大法:第一招,扫端口:第二招,... . 扫后台试试呗,用御剑扫到存在robots.txt,访问发现很多个Disallow:可能的试试,发现flag在/rob0t.php中 ...
- python @property的用法及含义全面解析
在接触python时最开始接触的代码,取长方形的长和宽,定义一个长方形类,然后设置长方形的长宽属性,通过实例化的方式调用长和宽,像如下代码一样. class Rectangle(object): de ...
- TMS320DM642学习----第六篇(CCS中.dat文件类型详解)
1.如下为.dat文件中文件头的基本格式: MagicNumber Format StartingAddress PageNum Length [NewFormat] 下面是分别的解释: MagicN ...
- leetcode刷题五<最长回文子串>
下面是题目的描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 . 示例 : 输入: "babad" 输出: "bab" 注意: ...
- Linux-共享内存通信
Linux共享存储通信 内容 创建共享存储区实现进程通信 机理说明 共享存储区(Share Memory)是Linux系统中通信速度最高的通信机制.该机制中共享内存空间和进程的虚地址空间满足多对多的关 ...
- [OC] NSTimer
注意NSTimer的销毁 NSTimer在初始化之后,加入RunLoop会导致当前界面被强引用, 所以不会执行dealloc, 需要在合适在逻辑上进行NSTimer的销毁 [_timer invali ...
- xpath路径定位
preceding-sibling选择同级层所有节点向前查找 //div[@id='id1']/preceding-sibling::div/a 例如:“更多产”超链接的同级向上数第二个元素,即“登陆 ...
- 光流法-opencv python
import cv2 import numpy as np cap = cv2.VideoCapture("D:/Workspace/week2/test/test_256_12.mp4&q ...
- 开始食用grpc(之一)
开始食用grpc(之一) 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9501353.html ``` 记一次和一锅们压马路,路过一咖啡厅(某巴克),随口 ...
- jQuery(三)
jquery链式调用 jquery对象的方法会在执行完后返回这个jquery对象,所有jquery对象的方法可以连起来写: $('#div1') // id为div1的元素 .children('ul ...