开始把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. Keystone中间件WSGI环境变量总结

    OpenStack keystonemiddleware接收前一个WSGI过滤器传来的WSGI环境信息,进行验证工作后传递给下一个中间件,本文探讨keystone中间件究竟有哪些WSGI环境变量. 说 ...

  2. 我的openwrt开发相关文章

    openwrt学习笔记: 在openwrt的学习过程中,走了非常多的弯路.一直以来有个期盼.希望能够出个简易教程,希望openwrt的同仁们能够更加高速的入手. . openwrt学习笔记(三十二): ...

  3. linux下时间同步的两种方法分享

    方法1:与一个已知的时间服务器同步 复制代码 代码如下: ntpdate time.nist.gov 其中 time.nist.gov 是一个时间服务器. 删除本地时间并设置时区为上海 复制代码 代码 ...

  4. windows版mysql配置--my.ini

    完整配置如下: # power by phpStudy 2014 www.phpStudy.net 官网下载最新版 [client] port=3306 [mysql] [mysqld] port=3 ...

  5. windows下Nginx与tomcat组合简单使用

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中瓦片资源越来越多,如果提高瓦片的访问效率是一个需要解决的 ...

  6. dpkg: error processing package libraspberrypi-doc (--configure): package is in a very bad inconsistent state;

    dpkg: error processing package libraspberrypi-doc (--configure): package is in a very bad inconsiste ...

  7. Publish/Subscribe Model——Notification chain——观察者模式

    内核中用的很多,整理时间子系统的时候又遇到了notification mechanism,因此做次记录: 参考:1.http://msdn.microsoft.com/en-us/library/ff ...

  8. Android学习之——ListView

    背景知识 ListView在Android应用中使用非常广泛,手机上必备的微博.网易新闻等,都使用了ListView.

  9. koa2使用阿里云oss的nodejs sdk实现上传图片

    nodejs实现上传图片到阿里云,自然是写成接口形式比较方便,前端监听input file的改变,把file对象传入到formData中传入后端,不能直接传入file对象,后端需要接受formData ...

  10. easyui分页,编辑datagrid某条数据保存以后跳转到某一页

    参考资料:http://caizhilin2010.iteye.com/blog/1731698 问题:商品列表页面采用easyui的datagrid展示数据,编辑某行数据保存以后,要求跳转到 用户在 ...