一、温故

关于CSS3 clip-path, 去年圣诞节前前前夕写了篇名为“CSS3/SVG clip-path路径剪裁遮罩属性简介”文章介绍了。不过是简介,很多内容是一笔带过。

CSS3中的clip-path可以遮罩很多图形,例如矩形rectangle, 圆circle, 椭圆ellipse, 多边形polygon, 以及inset剪裁。

其中,polygon多边形构建频频出现了我的视野中,不知是贪图我的美色还是其他什么原因,总之,它成功了,成功引起了我关注。于是,按照虐心剧剧本一贯的尿性,男主和X主发生了很多情感上的纠葛。这里特意呈现给大家,满足大家八卦的天性。

二、成形

clip-path的前身是SVG, 所以,我们的坐标都是二维的。

polygon的作用就是根据二维点坐标,依次连线,最后所形成的区域就是我们的遮罩区域了。

上面截图就是1个点~20个点绘制的多边形效果。大家可以看到趋势,点越多,最后的多边形越接近圆形。所以,如果你要是闲的蛋疼,可以用100个点模拟一个圆。

我们实际应用的时候,5个角以上的多边形是不会用到的。

最常用的估计就是三角效果了。

10年的时候有介绍“CSS border三角、圆角图形生成技术简介”,可以使用border属性生成各类三角效果:

更之前的09年还介绍过使用字符生成三角。

相比而言,clip-path家族的polygon生成三角要更简单也更强大。

打个背景色,搞三个点就可以了,例如(自身尺寸20px*20px):

.path {

clip-path: polygon(5px 10px, 16px 3px, 16px 17px);

}

于是呈现:

当然,我们可以把其中任意一个点的坐标弄偏一点,于是,我们就可以出炉一个不规则的三角效果,这是之前三角生成技术所不具备的。

//zxx: 相关Demo见下一节。

当然,polygon的潜力远不止这点伎俩,polygon对点的数目没有限制,所以,对于实现图形效果,限制我们的反而是我们的想象力。比方说,我们要实现一对三角效果,我们可以这么设计我们绘制路线(下图截自这里):

当然,那条横向你也可以放在中间,或者下面。

上图展示了polygon一个很棒的特性,就是,如果两个点最终仅仅形成的是一条线的话,是没有任何填充与遮罩的。于是乎,发挥我们的想象力,我们几乎可以构建各种各样的多边形图形。配合CSS3 background以及渐变等N多强大特性,我们可以实现很多很棒的效果!

唉,上年纪了,没有精力搞漂漂的示例了,大家自行脑补。

三、变形

CSS3 clip-path近期频频亮相的另外一个原因就是可以transition过渡或者animation动画。于是,我们可以实现很多棒棒哒的效果。比方说——不规则图形变换效果,很好地填补了CSS3 transform变换的不足。

transform变换本质是基本矩阵变换,因此,也就是转一转,拉一拉。对于,复杂图形变换效果,比方说,矩形变成三角,乌龟变小鸟之类的,就只能望码兴叹了。然,clip-path就可以搞定。

由于polygon规则限制少,任意多边形,只要边是直的就行,比圆之类的定死的图形发挥的空间更大。因此,polygon更受设计师和相关前端人员的热爱。

然而,polygon的动画变形不是无条件的,且看~

demo操作如下视频演示:

大家自行看会发现,从1个三角变成2个三角的时候,是没有过渡效果的。这就是polygon的动画变形的一个重要条件:坐标的数目变形前后必须一致。

只要polygon点坐标的数目在动画的前后数目一样,浏览器就能实现连续动画,哪怕图形前后的模样是凤姐和林志玲的差距。比如说上面视频最后一个,2个三角变成1条鱼的过渡效果。

相关polygon坐标代码如下:

.path6 {

clip-path: polygon(5px 10px, 16px 3px, 16px 9px, 36px 9px, 36px 3px, 47px 10px, 36px 17px, 36px 11px, 16px 11px, 16px 17px);

}

.path7 {

clip-path: polygon(5px 11px, 5px 9px, 16px 3px, 26px 3px, 40px 9px, 48px 15px, 48px 5px, 40px 11px, 26px 17px, 16px 17px);

}

四、眼界

本文说到现在所展示的polygon应用只是皮毛,虽然说原理就这么回事,但是,人类之所以为人类,创意和想象力是非常重要的,小小的polygon,如果遇到非常棒的设计师加上非常棒的idea, 最后,就是让人大开眼界的视觉盛宴!

推荐大家都去瞅瞅,30个动物,30种变换,主要就是使用clip-path polygon实现,下面就是我截取的部分视频:

欢迎发表观后感!

本文为原创文章,包含脚本行为,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。

本文地址:http://www.zhangxinxu.com/wordpress/?p=4732

(本篇完)

css3多变形,CSS3 clip-path polygon图形构建与动画变换二三事相关推荐

  1. CSS3——2D变形(CSS3) transform

    让青春吹动了你的长发 2D变形(CSS3) transform 移动 translate(x, y) 缩放 scale(x, y) 旋转 rotate(deg) transform-origin可以调 ...

  2. Android开发--图形图像与动画(二)--Animation实现图像的 渐变、缩放、位移、旋转

    Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 下面就讲一下Tweene Animations. 主要类: ...

  3. Android开发--图形图像与动画(二)--Animation实现图像的 渐变 缩放 位移 旋转

    Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 下面就讲一下Tweene Animations. 主要类: ...

  4. css3中变形与动画(三)

    transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...

  5. css中变形,css3中变形处理

    transfrom功能 在css3 中可以使用transfrom功能实现文字或图像的旋转,缩放,倾斜,移动等变形处理 deg是css3中使用的一种角度单位. 旋转: 使用rotate方法,在参数中加入 ...

  6. css3中的变形(transform)、过渡(transtion)、动画(animation)

    Transform字面上就是变形,改变的意思.在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix.下面我们一 ...

  7. CSS3 Transform变形理解与应用

    CSS3 Transform变形理解与应用 Transform:对元素进行变形: Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞. ...

  8. CSS 变形(CSS3) transform

    一.2D变形(CSS3) transform transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移.旋转.倾斜.缩放,甚至支持矩阵方式,配合过渡和即将学习的动画知识,可以取代大量之前 ...

  9. 用HTML加css制作立体方块,CSS3 三维变形实现立体方块特效源码

    前言 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换的功能类似.3D变形与2D变形的最大不同就在于其参考的坐标轴不同,2D变形的坐标轴是平面的,只存在X轴和Y ...

  10. 三维坐标轴html实现,CSS3三维变形,其实很简单!

    原标题:CSS3三维变形,其实很简单! 本文主要内容一.前言二.坐标轴系统三.透视与变形风格四.3D变形函数五.实例展示六.总结一.前言 所谓的三维变形,无外乎就是在二维平面的基础上进而实现三维立体空 ...

最新文章

  1. 文巾解题 面试题 01.06. 字符串压缩
  2. ubuntu14.04、CentOS安装oracle 11g数据库【转载】
  3. 解决beautifulsoup代码无效问题
  4. Bit-Z 项目评审中心开启首次投票币竞选
  5. 计算机第二阶段在线作业冯,中国石油大学(北京)《计算机应用基础》第一次在线作业 2...
  6. IOS开发学习笔记011-xcode使用技巧
  7. win7系统如何开启udma功能
  8. python字符串结合操作符的使用
  9. 1024程序员节:给DBA们的福音
  10. [bzoj3140] [Hnoi2013]消毒
  11. 看完就能学会FTP和DHCP✌️
  12. 红帽linux安装教程
  13. 全国计算机等级考试三级网络技术知识点考点
  14. 基于Java毕业设计职业信息服务平台源码+系统+mysql+lw文档+部署软件
  15. 怎样与常见的9种人打交道
  16. Unity3D学习笔记6——GPU实例化(1)
  17. Python项目--批量下载小姐姐壁纸
  18. Linux 命令(148) —— pstack 命令
  19. 信道编码与交织、脉冲成型
  20. [Offer收割]编程练习赛2 hihocoder 1272 买零食 (DFS 或 dp 水题)

热门文章

  1. 典型相关分析(CCA)简述
  2. Mysql 根据经纬度计算距离
  3. 供应链三道防线(读书笔记)2(共4)
  4. CCNA题库第一部分
  5. n1怎么进入线刷模式_诺讯N1线刷救砖教程 刷机包下载
  6. 全国计算机三级网络技术题库南开,计算机三级上机-适用于三级网络技术数据库等(南开100题).doc...
  7. 一分钟了解“Matlab画三维空间中的点plot3”
  8. 实现网站的国际化语言切换
  9. java毕业设计开题报告javaweb户籍管理系统|户口
  10. 台式计算机如何连接投影仪,电脑如何链接投影仪_台式电脑主机怎么连接投影仪-win7之家...