css 动画 transition和animation
本文参考:http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html
1. transition基本用法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body,
html {
height: 100%;
width: 100%;
padding: 0;
margin: 0;
}
img {
width: 50px;
height: 50px;
display: block;
margin: auto;
transition: 1s; //如果不使用 transition 鼠标移到img 上面时是马上变化的,加上这个属性,变化就会持续一秒的过程
}
img:hover {
width: 500px;
height: 500px;
}
</style>
</head>
<body>
<img src="./o_200404110308weixin_20191025171935.jpg" alt="" />
</body>
</html>
我们还可以指定 height 或者 width 等属性的变化
img {
width: 50px;
height: 50px;
display: block;
margin: auto;
transition: 1s height;
}
这种写法表示只有 img 的height 有持续1s 的过度属性,如果想高度变化在变化宽度,可以指定delay参数
img {
width: 50px;
height: 50px;
display: block;
margin: auto;
transition: 1s height, 1s 1s width;
}
transiton 的状态变化速度默认不是匀速的,而是逐渐放慢的,这叫做 ease
img {
width: 50px;
height: 50px;
display: block;
margin: auto;
transition: 1s height, 1s 1s width ease;
}
除了可以取值ease 以外,还有其他模式
1. linear : 匀速
2.ease-in: 从慢到快
3.ease-out: 从快到慢
4.cubic-bezier函数:自定义速度模式
cubic-bezier可以用工具网址:https://cubic-bezier.com/#.17,.67,.83,.67 来定制
img{
transition: 1s height cubic-bezier(.83,.97,.05,1.44);
}
使用transition 的注意事项:
1.目前各大浏览器都已经支持无前缀的 transition ,所以可以很安全的使用
2.不是所有css 属性都支持 transition
3. transition 需要明确知道开始状态和结束状态的具体数值,也就是说如果开始或结束的设置是 height:auto,那么不会产生动画效果,类似的情况还有, display:none到 block background:url(foo,jpg)到url(bar.jpg)等等
transition 的局限:
1. transiton 需要事件触发,所以没办法在网页加载时自动触发
2.transition 是一次性的,不能重复发生,除非一再触发
3.transition 只能有两个状态
2.Animation
首先,css Anmiation 需要指定动画一个周期持续时间
.donghua {
animation: 1s rainbow;
}
上面的代码表设计,给.donghua 这个class 添加一个 动画,我们需要定义动画的rainbow 动画效果
@keyframes rainbow {
0% {
background: red;
}
50% {
background: orange;
}
100% {
background: yellowgreen;
}
触发动画
<div id="div1"></div>
<button onclick="donghua()">点我</button>
<script>
let div1 = document.getElementById('div1')
function donghua() {
div1.classList.add('donghua')
}
</script>
默认情况下,动画只能播放一次,加入 infinite 关键可以让动画无限播放
.donghua {
animation: 1s rainbow infinite;
}
也可以指定动画具体播放次数
.donghua {
animation: 1s rainbow 3;
}
动画结束以后,会立即从结束状态跳回起始状态。如果想让动画保持在结束状态可以使用
animation-fill-mode属性。
.donghua {
animation: 1s rainbow forwards;
}
animation-fill-mode 的其他值
1. none :默认值,回到动画没开始的状态
2.backwards : 让动画回到第一帧的状态
3.forwars : 结束状态
有时,动画播放过程中突然停止,这时,默认跳回到动画开始时的状态,如果想要动画保持结束的位置,可以使用 animation-play-state属性
.donghua {
animation: 1s rainbow infinite;
animation-play-state: paused;
}
.donghua:hover {
animation-play-state: running;
}
css 动画 transition和animation的更多相关文章
- css动画(transition/transform/animation)
在开发中,一个好的用户操作界面,总会夹杂着一些动画.css用对少的代码,来给用户最佳的体验感,下面我总结了一些css动画属性的使用方法及用例代码供大家参考,在不对的地方,希望大佬直接拍砖评论. 1 t ...
- css动画——transition和animation
http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html 第一部分:CSS Transition 在CSS 3引 ...
- CSS动画-transition/animation
HTML系列: 人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML元素大全(2)-表单 CSS系列: CSS基础知识筑基 常用CSS样式属性 CSS选择器大全48式 CS ...
- CSS3动画 transition和animation的用法和区别
transition和animation都是CSS3新增的特性,使用时需要加内核 浏览器 内核名称 W3C IE -ms- Chrome/Safari -webkit- Firefoc - ...
- CSS动画效果之animation
Y(^o^)Y css动画大乱弹之animation. 概述 什么是animation呢?在回答这个问题之前,先要说明什么叫做@keyframe(关键帧).@keyframe算是一个动画模板.在其中, ...
- css动画 transition
比如输入框触交渐变 在原来的属性添加 : .form-control{-webkit-transition: all .3s; transition: all .3s;} .form-control: ...
- css3动画入门transition、animation
css3动画 transition.animation CSS3 transition demo <!DOCTYPE html> <html> <head> < ...
- Css动画形式弹出遮罩层,内容区上下左右居中于不定宽高的容器中
<!DOCTYPE html> <html> <head> </head> <body id="body"> <! ...
- css 动画 transform transition animation
1.transform transform 是通过在浏览器里面让网页元素 移动 旋转 透明 模糊 等方法来实现改变其外观的技术 -webkit-transform : translate(3em,0 ...
随机推荐
- html建立大众点评页面遇到的问题
大众点评所用知识 HTML.CSS.bootstrap3 遇到的问题 因图片无法对齐 源码:抛弃div改用img后成功对齐 解决后成功对齐 源码: 导航栏文本无法右对齐. 我想到的方法是: div{ ...
- JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)
3518. [NOIP2013模拟11.6A组]进化序列(evolve) (File IO): input:evolve.in output:evolve.out Time Limits: 1000 ...
- 超详细,多图文介绍redis集群方式并搭建redis伪集群
超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好.敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲.且看且珍 ...
- Nginx + uWSGI部署中的一些小坑
1.invalid host in upstream报错 重新启动nginx : sudo /etc/init.d/nginx restart 原因是在配置负载均衡nginx.conf配置文件时,发现 ...
- 一起了解 .Net Foundation 项目 No.17
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Peachpie Comp ...
- django学习笔记 多文件上传
习惯了flask 再用django 还是不太习惯 好麻烦 配置文件也忒多了 不过还是要学的 之前只能一个一个文件长传,这次试试多个文件 不适用django的forms创建表单 直接在html中使用 ...
- FSBPM流程引擎(002)之表单+自定义流程挂载到引擎
本章节介绍如何将实际业务的表单和自定义流程挂载到FSBPM流程引擎上. 首先进入引擎交互界面: 点击创建:->出差申请 然后根据实际的业务输入对应的数据项即可,比如[姓名,部门,开始时间,结束时 ...
- 探究Spring Boot中的接收参数问题与客户端发送请求传递数据
结合此篇参考Spring框架学习笔记(9)--API接口设计相关知识及具体编码实现 在使用Spring Boot进行接收参数的时候,发现了许多问题,之前一直都很忙,最近才稍微有空研究一下此问题. 网上 ...
- svn 追责神器 blame vscode - SVN Gutter
svn 追责神器 blame vscode - SVN Gutter
- 【Weiss】【第03章】练习3.20:中缀表达式转后缀表达式
[练习3.20] a.编写一个程序将中缀表达式转换为后缀表达式,该中缀表达式含括号及四则运算. b.把幂操作符添加到你的指令系统中去. c.编写一个程序将后缀表达式转化为中缀表达式. Answer: ...