开始把7,8月份学的css整理一下

transition过渡

1. CSS transition

transition过渡 :用于当元素 从一种样式变换为另一种样式 时为元素添加效果。

2. transition的各项子属性详细值

name value 是否必须 备注
transition-property 需要应用过渡效果的CSS 属性的名字/all 填写一个属性名则监听一个,填 all 则监听该元素的所有样式变化,当指定的 CSS 属性改变时,过渡效果将开始执行。
transition-duration 过渡时间 不填写默认为0,不会发生动画渐变效果
transition-timing-function 过渡效果的时间曲线 贝塞尔曲线,默认ease
transition-delay 是否延迟执行过渡 不填写时默认为0

transition-property需要交代给你的那些事

  • 指定的这个属性值改变时,就会有动画效果,所以你想看谁 (属性) 的动画(不是笑话哦),这个值就填谁 (属性名) ,比如本案例,改变的时蓝色线条的长度(宽度)值,所以这个值设置为width属性名就行了。

  • 可填的值:

可填的值 讲解 备注
none none 我不设置transition好不好?
all 代表所有的属性都会有 有时候你要监听好几个属性值,又很懒不想一个一个写,那就写个all,监听所有。我不知道这个对性能有什么影响,不过估计浏览器没那么智能,不是谁变化监听谁,而是费劲巴拉的监听所有,没有变化的也被监听了,虽然我们肉眼上看不到,但其实他也消耗了。
property-name-list 正常写,比如宽度就写width,高度写height,就把css属性名直接复制粘贴过来即可 注意这里加了一个list,是一个属性列表,可以写多个,多个之间用都好隔开就好
  • js里的写法:
obj.style.transitionProperty = 'width,height,transform';

规律就是,把中间那个横线去掉,然后第二个及以后字母的首字符大写。

transition-duration需要交代给你的那些事

  • 整个动画持续的时间,即完成动画需要的时长

  • 请始终设置 transition-duration 属性,否则时长为 0,就不会产生过渡效果。(手册一直强调这句话)

  • 可能的值:

    • time,时间值,1s代表1秒。3500ms = 3.5秒;;;;

    • 具体就是数值加上单位即可,换算遵循1000ms=1s的格式。

    • 但通常来说,我比较喜欢用.35s。

    • 还是根据需要的动画效果视情况而定。但是一定一定要设置就是对了。

前两个是必填的,否则不起作用

  • js里的写法:
obj.style.transitionDuration = '3.5s';

transition-timing-function需要交代给你的那些事

  • 规定过渡效果的速度曲线,是先快后慢?还是先慢再快最后慢?还是匀速从头开到尾呢?这就对应了他的属性值ease-out、ease-in-out、linear。

  • 原理就是:过渡效果随着时间改变其速度。

  • 当然你也可以自定义动画曲线:cubic-bezier(n,n,n,n)。就是大名鼎鼎的贝塞尔曲线啦。又好像animate的帧一样,时间开头怎么样动,时间结尾怎么样动,不过他还是时间大范围内的凭感觉控制,没有animation的帧动画强大,只要你愿意,可以把animation当作flash的工作台来用哦!

  • 各属性值含义

效果描述 备注
linear 匀速 一开始挂上档后可以睡觉了,直到终点不会变档
ease 默认值 慢-快-慢 曲线图就像一座山丘
ease-in 慢-end 像一个自行车子启动的一瞬间,刚开始蹬不动都是慢慢走,后边匀速
ease-out start-慢 像一个车子刹车的一瞬间
ease-in-out 慢-o-慢 更自然的一个车子发动-走动-刹车停住的过程
cubic-bezier(n,n,n,n) 自己调曲线决定动画的效果随时间变化是快还是慢 0-1的可调范围,别过了

cubic-bezier四个值设置成什么样刚好是其他五个值的效果呢?

bezier配置
linear cubic-bezier(0,0,0.25,1)
ease cubic-bezier(0.25,0.1,0.25,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)
  • js写法:
  object.style.transitionTimingFunction="linear"

transition-delay需要交代给你的那些事

  • 延迟执行动画效果。

  • 可以不填,我一般都不填,除非需要和另一个样式配合时,为了等待另一个样式完毕再执行这个,就需要用上delay了。

  • js写法:

object.style.transitionDelay="2s"

--------- 懒人写法 ----------

单个属性 简写写法:

  transition: propertyName duration+s timing-function dealy

过渡:属性名 动画时间 动画曲线 延迟时间;

transition应用多个属性

多个属性 简写写法:

  transition: propertyName1  propertyName2 propertyName3 ...后边同上;

过渡: 属性名1 属性名2 属性名3 ...;

除了使用all属性,还可以使用逗号隔开多套。例如:

  transition: transform .45s ease-in-out, margin .2s linear .2s;

js写法

  object.style.transition="width 2s"

3. 浏览器兼容性

IE10+,Firefox、Chrome 以及 Opera 支持 transition 属性。

Safari、Chrome<25 需要前缀 -webkit-。

兼容性写法:

transition: width 1s;
-moz-transition: width 1s; /* 以前习惯第二个写-webkit-的,今天看官网还是自己写错了 */
-webkit-transition: width 1s;
-ms-transition: width 1s;
-o-transition: width 1s;

特殊情况遇到transform这一类也需要兼容性写法的属性时:

transition: transform 1s;
-moz-transition: -moz-transform 1s;
-webkit-transition: -webkit-transform 1s;
-ms-transition: -ms-transform 1s;
-o-transition: -o-transform 1s;

多个transition属性分开写时,添加兼容性前缀的方法同上,不再赘述。顺序是:正常;-moz-、-webkit-、-ms-、-0-!

4. 贝塞尔曲线

运动曲线是动画的灵魂

ease-in 缓入,从0开始加速,适合元素离开页面的时候。

ease-out 缓出,有一个刹车的感觉,速度逐渐变没。适合一个元素进入页面的 时候

ease-in-out 缓入缓处,开头结尾都没有速度,先加速,再减速。适合用在一个元素从页面a到b点。

linear 匀速,死板别用。

cubic-bezier(n,n,n,n)

css3-beziercurve

四个点(起始点、终止点以及两个相互分离的中间点)

css笔记 - transition学习笔记(二)的更多相关文章

  1. 从今天开始 每天记录HTML,CSS 部分的学习笔记

    从今天开始 每天记录HTML,CSS 部分的学习笔记

  2. CSS Grid 布局学习笔记

    CSS Grid 布局学习笔记 好久没有写博客了, MDN 上关于 Grid 布局的知识比较零散, 正好根据我这几个月的实践对 CSS Grid 布局做一个总结, 以备查阅. 1. 基础用法 Grid ...

  3. html css的简单学习(二)

    html css的简单学习(二) <!Doctype html>告诉浏览器,这是一个html文档.lang="en" 默认是en,表示英语:zh-Hans 中文简体:z ...

  4. CSS权威指南学习笔记系列(1)CSS和文档

    题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...

  5. css权威指南学习笔记 —— css选择器

    1,选择器:选择器的一些基本常用规则基本都记得,w3c上都有,平时也常用,不常用的一些后代选择器经常就忘记了.一些归纳一下后代选择器,加深一下印象: a:子选择器:   p>a  a是直接是p的 ...

  6. 原生 CSS 网格布局学习笔记

    下是来自Oliver Williams的帖子. Oliver已经学习了相当长时间的原生CSS网格,可以说是在CSS网格方面有一定的发言权.在这篇文章中,他将以非同寻常的思路分析自己的CSS网格布局学习 ...

  7. [读书笔记]C#学习笔记一: .Net Framwork

    前言: 一次偶然的机会  在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C ...

  8. [读书笔记]C#学习笔记三: C#类型详解..

    前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...

  9. [读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析

    前言 上次在公司开会时有同事分享windebug的知识, 拿的是string字符串Concat拼接 然后用while(true){}死循环的Demo来讲解.其中有提及string操作大量字符串效率低下 ...

随机推荐

  1. Erlang Trace机制

    从FTP模块学习先进的诊断技术(Erlang Trace机制) http://blog.yufeng.info/archives/466

  2. 逻辑卷管理LVM 扩容LV容量实例(一)

    实验环境: 一台Linux 服务器添加两块硬盘,一块硬盘容量30G,另一块硬盘容量50G,采用VMware Workstation虚拟机进行模拟实验. 30G硬盘先分成一个分区,分区大小为25G,再创 ...

  3. interproscan 软件对序列进行GO 注释

    interproscan 软件实际上将对输入的查询序列和interpro 数据库中的序列去比对,将比对上的序列对应的GO信息作为查询序列的GO注释 在interpro 数据库中,每条蛋白质序列有一个唯 ...

  4. Ubuntu下从外网上北邮人BT

    首先你需要有北邮的VPN账号和密码,只要是北邮的学生都有 账号和密码不懂的请查看 VPN账号密码说明 接下来登录 https://sslvpn.bupt.edu.cn,输入账号和密码 已经登录好了 但 ...

  5. UNIX环境编程学习笔记(25)——信号处理进阶学习之 sigaction 函数

    lienhua342014-11-05 sigaction 函数跟 signal 函数一样,用于设置信号处理函数.此函数是用于取代 UNIX 早期版本使用的 signal 函数.UNIX 早期版本的 ...

  6. linux proc目录介绍

    https://www.cnblogs.com/DswCnblog/p/5780389.html

  7. Mybatis -- 批量添加 -- insertBatch

    啦啦啦 ---------------InsertBatch Class : Dao /** * 批量插入perfEnvirons * * @author Liang * * 2017年4月25日 * ...

  8. Spring JDBC入门

    Spring将替我们完成所有使用JDBC API进行开发的单调乏味的.底层细节处理工作. 操作JDBC时Spring可以帮我们做这些事情: 定义数据库连接参数,打开数据库连接,处理异常,关闭数据库连接 ...

  9. 给自己的android扫盲文 - 1

    1. 你得知道,android开发打一开始就是java的事,没其它语言什么事情,就是说google提供的android sdk中的api都是java的api2. 至于强大的跨平台语言,你懂的,非c/c ...

  10. iOS UTI(统一类型标识)

    同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件.可以把它看成下一代的MIME类型.UTI是标识资源类型(比如图像和文本)的字符串,他们制定哪些类型 ...