开始把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. 贫血模型;DTO:数据传输对象(Data Transfer Object);AutoMapper ;Domain Model(领域模型);DDD(领域驱动设计)

    ====================== 我自己的理解 ========================== 一:  DTO  我自己的理解,就是 比如你有一个类,跟数据库的table表结构一模一 ...

  2. MySQL5.6主从复制搭建基于日志(binlog)

    什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟 ...

  3. 绘制你的第一个图表(jquery-flot-line-chart)

    事前准备 首先, 请先确定你已经下载了Flot档案, 如果还没有的话可以先回到前一章 去下载. 这是你绘制的第一张图, 我们用最常用的折线图当例子, 折线图常被用来显示一段时间间隔趋势的走向, 常见的 ...

  4. C# 抓取并导出网页里面所有超链接方法

    public class app { // 获取指定网页的HTML代码 public static string GetPageSource(string URL) { Uri uri = new U ...

  5. iOS: 动态更改 backBarButtonItem 的 title

    先来看一下 UIBarItem 的 title 的描述 The title displayed on the item. You should set this property before add ...

  6. Libertarian

    Libertarians as the real god-son has the consistent faith of humanity freedom. The super libertarian ...

  7. spring mvc 框架URL接收中文参数的乱码解决方案

    后台可能就会出现乱码,具体解决方案如下: 一. 配置tomcat目录下的service.xml文件 tomcat7/conf/server.xml 给该行代码加上 URIEncoding=" ...

  8. 【Machine learning】余弦相似度

  9. Android开发学习笔记-自定义TextView属性模版

    如果项目中有很多个控件使用的是同一种样式,则为了方便,可以将样式设置到系统中去,这样使用的时候会方便很多. 下面是自定义样式模版的方法. 1.在style.xml文件中添加自己要设置的样式内容 < ...

  10. 站长常用的200个js代码 站长常用js代码大全 站长常用js代码集合

    站长常用的200个js代码 1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect: ...