学习CSS3,觉得最难记忆的部分除了flex特性之外,就要属变形,过渡和动画部分了。作为初学者,总有种犯懒的心理,想着既然IE8浏览器都不完全支持CSS动画属性,还要考虑浏览器兼容问题,那么就不那么着急学,一旦有需求使用JS勉强应付即可。但后来就渐渐觉得心慌,看大家都在争相谈论使用CSS3的动画,做出一个个惊艳的效果。觉得这种想法真是害人,哪有程序员不向前看而呆在自己的舒适圈里坐井观天呢?手机端H5页面各种在用CSS动画,网页也使用CSS动画大大提升了页面性能,减少了JS代码负担,提高了效率,实在是没有理由在自欺欺人的将这些新理由拒之门外,于是我便打算重新完整的学习一下CSS这些新的属性,将知识系统的整理一遍,并在这过程中将想到的一些问题,一些心得记录下来。

我学习的主要参考是大漠撰写的《图解CSS3核心技术与案例实战》一书,预计分为5个部分,第一个部分主要简单的谈谈自己对这些CSS3新属性的思考与理解,第二部分着重梳理CSS3变形属性的知识点,随后的两个部分依次对CSS3过渡、动画的知识点进行梳理,在最后一个部分中,我会将我实际运用CSS3变形、过渡、动画属性做出的效果进行展示,并对实际运用中产生的种种问题进行梳理和总结,自然,第一部分和最后一部分是会不断更新的,希望有朝一日我可以达到不再更新的程度。

以下是这一系列文章的一个大体的框架:

  1. 对CSS3变形,过渡和动画属性的思考;
  2. CSS3变形属性探讨;
  3. CSS3过渡属性探讨;
  4. CSS3动画属性探讨;
  5. CSS变形,过渡和动画属性的实际应用与问题;

为了节约篇幅,就在此直接开始第一部分——对CSS3变形,过渡和动画属性的思考

从整个知识体系而言,对于惯用CSS2的前端开发人员而言,CSS3的flex属性和本文介绍的变形,过渡,动画属性无疑是最陌生的,因此也造成了学习曲线较为陡峭,之所以之前对这些属性有点不上心除了浏览器兼容问题外,其实还是自以为动画用jQuery也可以完成,而且三个属性纠缠在一起一时很难分辨的清。但现在想来,这些偏见似乎都很有进一步思考的必要,思考清楚之后固本清源,似乎就能够对CSS3的这些新属性有一层更加深入的认识。

1.对变形,过渡,动画属性的认识

(1)变形属性

因为属性名为transform,因此中文翻译为"变形",私以为比较贴切,属性的作用也可以顾名思义,用于改变元素的位置,大小和形状。变形属性我认为有四个特点:

  • ① 使用函数;
  • ② 主要服务于动画;
  • ③用于改变元素(盒子)的位置,大小和形状;
  • ④ 为元素建立了3D空间,使得元素拥有了变形的另外两个重要控制:远近和透视角度。至此,通过变形属性,我们可以对元素(盒子)进行更多的操控,元素的表现方式被大大扩展了。

学习的难点除了在于记忆各种变形函数的名称和使用方式外,还必须深刻理解元素在3D环境下的呈现方式,当然,还需要勤加练习方能熟而生巧。

(2)过渡属性

过渡属性名为transition,有"过渡,变换"之意,实际上的作用也是如此,其作用在于在指定的时间内,用指定的速率,将指定的元素属性的值从值A过渡为值B,同时,允许时间上的延迟。因此从作用上看,要使用过渡必须要有的条件有三个:同一属性的两个值,触发过渡,过渡的时间。过渡的本质大概在于"监听",紧紧盯住某个元素属性值的变化,并在一定时间内反映出来。其实我认为过渡也属于一种动画,毕竟有"动"的成分在里面,但之所以还需要额外的一个"动画属性"则在于,过渡属性只能处理元素属性值从A到B的过程,而真正的动画往往需要多帧,即某属性值从A到B再到C的过程,这种情况显然是过渡属性无法处理的。

(3)动画属性

在前面也提到过,动画属性主要通过为元素属性添加"帧数"来实现动画效果,具体的实现方式将在之后谈及,这里就不再赘述。

2.关于结构、样式和行为的分离

从第一次接触前端技术就被反反复复灌输结构、样式和行为分离有多么政治正确,多么高效。因此在第一次接触CSS3这三个属性时就本能的产生疑惑,动画?这不是行为吗?那不是应该由JS来实现吗?为什么用CSS去做?特别是看到一些代码中使用CSS3+JS实现动画效果,这种疑惑就愈演愈烈了。

但是仔细一想,又觉得其实是自己走进了误区,没有本质上理解结构,样式和行为分离的含义,我们都知道HTML控制页面的结构和语义,CSS用来控制页面的样式,JS控制页面的行为,三者各司其职,因此在开发工程中彼此相对独立,维护起来会比较高效。但是,什么是样式?什么又是行为呢?我以为两者的分界线在于"交互",那什么是交互呢?即页面需要用户的主动行为产生改变,而用户需要得到页面的反馈进行可能的下一步行为。因此不需要人与页面交互的属于样式,应该由CSS来实现,需要人与页面交互的则需要JS来完成。

这么看来,动画则完全应该隶属于不需要交互的"样式"范畴,理所应当由CSS实现。但是如果我们进一步思考,就会对以上提到的分类方法产生疑问,为什么分界要是"交互"呢,我是这样理解的,因为"交互"存在着不确定性,而一门程序语言的作用就是通过编程让机器处理各种不确定性的过程。因此对于HTML,CSS,JS这三门语言而言,唯有JS有这个能力处理这种不确定性,因此由JS负责交互的部分。这也就解释了为什么CSS中hover等属性含有"交互"色彩却未受太多争议的问题,因为hover太简单,太实用了,不具备不确定性。我想,未来的前端发展,一定是将越来越多可以通用的,简单的,成熟的效果推向CSS,以简化前端开发人员的开发压力,节约开发者的时间使其能够更多的考虑如何实现更好的交互效果。

以上。

转载于:https://www.cnblogs.com/libinfs/p/5223112.html

重新想,重新看——CSS3变形,过渡与动画①相关推荐

  1. CSS3 变形 过渡 动画

    文章目录 CSS3 变形 过渡 动画 transform(变形) 概述 translate() 平移 scale() 缩放 skew() 倾斜 rotate() 旋转 transform-origin ...

  2. CSS3的过渡和动画

    过渡和动画都是CSS3的重要部分,今天有时间,了解些相关内容并记录下. 在开始之前,首先看看CSS3的转化. 转化 CSS3的转化分为以下几种: translate 移动 rotate 旋转 scal ...

  3. 原 CSS3中的过渡,css3之过渡

    CSS3的过渡和转换 CSS3的过渡和转换 1.过渡 什么是过渡呢?过渡通俗的来说就是从一个样式到另一个样式的逐渐转换改变的效果. 过渡的属性: 属性 描述 css transition 简写属性,用 ...

  4. css3动画图片旋转绕轴,css3图片旋转如何实现?css3实现图片旋转动画效果的方法...

    在网页中,我们经常可以看到一张图片在旋转,这样的图片旋转是怎么来实现的呢?本篇文章就来为你介绍一下关于css3实现图片旋转动画效果的方法. 实现css3中图片的旋转可以使用可以使用 -webkit-a ...

  5. CSS3变形和动画:旋转、扭曲、缩放、位移、矩阵 、原点 transform-origin、过渡属性 transition-property、过渡所需时间 transition-duration...

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程. 旋转.扭曲.缩放.位移.矩阵 ...

  6. css3变换、过渡与动画_带有CSS3过渡和变换的画布菜单

    css3变换.过渡与动画 Now as an easy to use jQuery Plugin 现在作为易于使用的jQuery插件 介绍 ( Introduction ) Off Canvas Me ...

  7. CSS3变形、渐变、动画的基本使用

    目录 CSS3 变形 2D转换 3D转换 CSS3颜色渐变 CSS3动画 transition过渡 animation动画 案例1:旋转的风车 案例2:摇晃的桃子 案例3:3D开门动画 总结 CSS3 ...

  8. c语言实现图片过渡效果飞入,用css3实现转换过渡和动画效果

    为什么要用css动画替换js动画 导致JavaScript效率低的两大原因:操作DOM和使用页面动画. 通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在 ...

  9. CSS3的过渡和转换

    CSS3的过渡和转换 1.过渡 什么是过渡呢?过渡通俗的来说就是从一个样式到另一个样式的逐渐转换改变的效果. 过渡的属性: 属性 描述 css transition 简写属性,用于在一个属性中设置4个 ...

最新文章

  1. java 对象 jvm生命_JVM对象的生命周期
  2. Exception异常
  3. Interface Builder nib2objc ibtool
  4. java构造器_Java构造器就是这么简单!
  5. Extjs TextField扩展
  6. keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...
  7. IOS中的事件响应链,事件冒泡机制基本了解
  8. 20170910__换电瓶
  9. Linux学习总结(26)——Shell常用命令总结
  10. EasyUI - Layout 布局控件
  11. IDAPython手册
  12. C++递归算法经典实例详解
  13. 什么是IS-IS中间系统到中间系统?网工、运维必看
  14. UML之Astah的基本使用教程-4(活动图、序列图、Stereotype Icon)
  15. oracle redo 状态,理解ORACLE REDO与UNDO
  16. PIP更新问题丨You should consider upgrading via the 'python -m pip install —upgrade pip' command.
  17. 用openlayers3绘图(点、线、圆、正方形....)
  18. Hdu 1877 又一版 A+B【水题+1】
  19. ethereum-etl学习2
  20. 迈向大牛的重要一步——掌握设计模式

热门文章

  1. python语言中文社区-python解决中文
  2. python爬虫原理-python爬虫从入门到放弃(二)之爬虫的原理
  3. python3.8.1安装教程-Linux安装Python3.8.1的教程详解
  4. python3.7安装turtle步骤-Python怎么引入turtle
  5. 我在学python-我在大学毕业后学习Linux、python的一些经验
  6. 数据分析 python 用途-python数据统计分析
  7. python3读取excel数据-Python3读取和写入excel表格数据的示例代码
  8. 微软官方python教程下载-微软官方上线 Python 教程
  9. python贴吧回帖-python控制浏览器爬取百度贴吧回复并写入Excel
  10. python北京理工大学推荐的书-Python教程书籍(北理工第2版)思考练习-第三章