CSS3实现一个炫酷的lowpoly动画实例
本篇文章主要介绍了CSS3实现任意图片lowpoly动画效果实例,这是一个利用CSS3的动画属性实现的结合lowpoly(低多边形风格)的效果,主要利用了CSS3 transform属性的rotate旋转,translate移动,scale缩放
这是一个利用CSS3的动画属性实现的结合lowpoly(低多边形风格)的效果,主要利用了CSS3 transform属性的rotate旋转,translate移动,scale缩放,CSS代码部分非常简单,唯一有趣的是 nth-of-type选择器的使用,这里UI设计师小伙伴不用望而却步,CSS部分完全可以拿来复用并根据自己的要求随意改变参数(所有不能复用的SVG动画代码都是耍流氓),然后,UI设计师再搭配上自己熟悉的AI利器,就可以完美的实现下面的效果了。
分步骤拆解:
1. 低多边形风格的图片的制作
我的原图是下面这种:
随手从电脑上找了一张背景图,然后借助一个神器 Image Triangulator,不得不感慨,这个工具真是太好用了,各位设计师需要做的只是在图片上打点(我是为了测试,很粗糙的添加了顶点,如果需要得到很出彩的效果,需要在明暗分隔的边缘精细添加)。
然后导出的pdf格式的文件,就可以用AI打开了。
2. 图片的处理
这里在AI里需要一步重要的操作, “释放剪切蒙版” ,如果不进行这步操作,生成的SVG代码里会有大量的路径裁剪遮罩标签 <<a href="http://www.php.cn/wiki/921.html" target="_blank">clip</a>Path>
以及polygon的clip-path属性。
释放剪切路径后选中图形就可以看到此时图片已经由一个个三角形色块组成了。
导出SVG代码可以看到密密麻麻的多边形标签 <polygon fill="" points=""/>
。
Image Triangulator生成lowpoly风格的图片;AI处理,释放剪切蒙版
此处需注意,这个软件生成的PDF是带未处理的底图的,SVG文件里有 标签,所以边缘那里可以多加几个点,或者截取掉一部分,防止边缘出现镂空。
3. 在线生成的低多边形背景图片的处理
如果需要的仅是一个背景图,建议使用网站 qrohlf.com/trianglify-generator/ ,可以自定义尺寸、颜色和晶格大小,支持生成SVG格式。比如下面这种:
利用这个在线工具生成的图片不处理的话里面会是
截止到这一步,我们的图形处理部分就已经结束了,剩下的是动画效果的实现
4. CSS3动画
先说一下动画实现的初步设想。我希望这些已经生成的多边形碎片进行旋转、位移和尺寸的变化,这对CSS来说,也是很容易实现的一个效果,但我需要的是散布的不同效果,位移的方向不同,距离不同,缩放不同,可我这种JavaScript渣渣又不会写随机函数,还好CSS3提供了一个强大的选择器 nth-of-type(an+b) ,利用它,我可以赋予不同的多边形碎片不同的动画属性值。
简单了解一下nth-of-type(an+b),n从0开始取值,依次加1,所以你会得到第a+b个,2a+b个,3a+b个……元素。
比如,我希望我的
polygon:nth-of-type(6n+1){transform: translate(x , y) scale() rotate();}
这是顺序为6n+1(即1,7,13,19……)的多边形的动画效果,同理,下一组为polygon:nth-of-type(6n+2),即选择了第2,8,14,20……个多边形,依次向后推,直到polygon:nth-of-type(6n+6)
现在附上全部的代码及注释
结合下面的全部代码说一下:
<html> <head> <style> /*以下为可复用的CSS代码部分*/ .cover{ position: absolute; width: 800px; height: 445px; top: 20%; left: 20%; z-index: 2; } /*cover和svg的宽高位置都重合,唯一不同的是z-index属性*/ svg { position: absolute; width: 800px; height: 445px; top: 20%; left: 20%; overflow: visible; z-index: 1; } polygon{ transition:all 1s ease; transform-origin: 50% 50%; } /*以下为设定的6组动画效果*/ .cover:hover + svg #lowpoly polygon:nth-of-type(6n+1){ transform: translate(-400% , -400%) scale(1.5) rotate(100deg); opacity: .3 } .cover:hover + svg #lowpoly polygon:nth-of-type(6n+2){ transform: translate(800% , -400%) scale(1.1) rotate(200deg); opacity: .4; } .cover:hover + svg #lowpoly polygon:nth-of-type(6n+3){ transform: translate(-800% , 400%) scale(1.2) rotate(200deg); opacity: .3; } .cover:hover + svg #lowpoly polygon:nth-of-type(6n+4){ transform: translate(-400% , 800%) scale(1.4) rotate(200deg); opacity: .4 } .cover:hover + svg #lowpoly polygon:nth-of-type(6n+5){ transform: translate(400% , 400%) scale(1.3) rotate(100deg); opacity: .3 } .cover:hover + svg #lowpoly polygon:nth-of-type(6n+6){ transform: translate(800% , 400%) scale(1.2) rotate(200deg); opacity: .3 } </style></head> <body><p class="cover"></p><!--定义的触发区域--> <svg> <g id="lowpoly"> ……此处为若干<polygon>标签 即需要自行替换的部分 </g> </svg></body></html>
由于SVG在执行动画效果后碎成满屏,如果我们的动画要设置成鼠标移入破碎,鼠标移出复原的效果,需要一个区域来进行动作的触发,这就是我们定义cover的意义,且层级属性要高于SVG属性。
关于动画效果的触发,我用的是 :hover 鼠标经过,需要其他触发事件可以求助前端攻城狮。
svg的 overflow 属性一定要定义为可见 visible ,以确动画效果后超出svg尺寸的部分可见。
关于polygon的动画属性的设定,这种 transition:all 1s ease 表示所有的动画时间为1s,缓动效果。 transform-origin: 50% 50% 定义了变换的原点为每个元素自己的center。
关于6组不同的动画效果,我设定了位移translate,缩放scale,选择rotate以及透明度opacity的变化。
这里X轴和Y轴的位移,建议自己划定一个范围,值越大,扩散度越高,比如我的X和Y方向都是-800%~800%。另外关于旋转的角度,rotate(),为了符合物理规律,偏移的路径越远的旋转的角度更大,反之亦然。
如果你想设定更多的不同的效果,只需要改nth-of-type(an+b)中n的系数a就可以了。
如果懒得修改尝试,UI设计师在套用这个模板时,只需要把自己制作(或者自动生成)的
知识点总结
1.关于低多边形lowpoly风格图片的制作(重点为自己制作任意图形)
2.CSS3选择器nth-of-type(an+b)的使用
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
2. 免费css在线视频教程
以上是CSS3实现一个炫酷的lowpoly动画实例的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

当微软推出Windows11时,它带来了许多变化。其中一项更改是增加了用户界面动画的数量。一些用户想要改变事物的出现方式,他们必须想办法去做。拥有动画让用户感觉更好、更友好。动画使用视觉效果使计算机看起来更具吸引力和响应能力。其中一些包括几秒钟或几分钟后的滑动菜单。计算机上有许多动画会影响PC性能、减慢速度并影响您的工作。在这种情况下,您必须关闭动画。本文将介绍用户可以提高其在PC上的动画速度的几种方法。您可以使用注册表编辑器或您运行的自定义文件来应用更改。如何提高Windows11动画的

CSS动画:如何实现元素的闪光效果,需要具体代码示例在网页设计中,动画效果有时可以为页面带来很好的用户体验。而闪光效果是一种常见的动画效果,它可以使元素更加引人注目。下面将介绍如何使用CSS实现元素的闪光效果。一、闪光的基本实现首先,我们需要使用CSS的animation属性来实现闪光效果。animation属性的值需要指定动画名称、动画执行时间、动画延迟时
![动画不工作在PowerPoint中[修复]](https://img.php.cn/upload/article/000/887/227/170831232982910.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
您是否正在尝试制作演示文稿,但无法添加动画?如果动画在你的WindowsPC上的PowerPoint中不起作用,那么这篇文章将会帮助你。这是一个常见的问题,许多人都在抱怨。例如,在Microsoft团队中演示或在屏幕录制期间,动画可能会停止工作。在本指南中,我们将探索各种故障排除技术,以帮助您修复在Windows上的PowerPoint中无法运行的动画。为什么我的PowerPoint动画不起作用?我们注意到可能导致Windows上PowerPoint中的动画无法工作问题的一些可能原因如下:由于个

我们在日常的办公中经常会使用到ppt,那么你是否对ppt里边的每个操作功能都很了解呢?例如:ppt中怎么设置动画效果、怎么设置切换效果、每个动画的效果时长是多少?每个幻灯片能不能自动播放、ppt动画先进入再退出等等,那么今天这期我就先跟大家分享ppt动画先进入再退出的具体操作步骤,就在下方,小伙伴们快来看一看吧!1.首先,我们在电脑中打开ppt,单击文本框外侧选中文本框,(如下图红色圈出部分所示)。2.然后,单击菜单栏中的【动画】,选中【擦除】的效果,(如图红色圈出部分所示)。3.接下来,单击【

本站1月26日消息,国产3D动画电影《二郎神之深海蛟龙》发布一组最新剧照,正式宣布将于7月13日上映。据了解,《二郎神之深海蛟龙》是由迷狐星(北京)动漫有限公司、霍尔果斯众合千澄影业有限公司、浙江横店影业有限公司、浙江共赢影业有限公司、成都天火科技有限公司、华文映像(北京)影业有限公司出品,王君执导的动画电影,原定2022年7月22日在中国大陆上映。本站剧情简介:封神之战后,姜子牙携“封神榜”分封诸神,而后封神榜被天庭密封于九州秘境深海之下。事实上,除了分封神位,封神榜中还封缄着众多强大的妖邪元

MicrosoftWindows11中包含多项新特性和功能。用户界面已更新,公司还引入了一些新效果。默认情况下,动画效果应用于控件和其他对象。我应该禁用这些动画吗?尽管Windows11具有视觉上吸引人的动画和淡入淡出效果,但它们可能会导致您的计算机对某些用户来说感觉迟钝,因为它们会为某些任务增加一点延迟。关闭动画以获得更灵敏的用户体验很简单。在我们看到对操作系统进行了哪些其他更改后,我们将引导您了解在Windows11中打开或关闭动画效果的方法。我们还有一篇关于如何在Windows

如何使用Vue实现打字机动画特效打字机动画是一种常见且引人注目的特效,常用于网站的标题、标语等文字展示上。在Vue中,我们可以通过使用Vue自定义指令来实现打字机动画效果。本文将详细介绍如何使用Vue来实现这一特效,并提供具体的代码示例。步骤1:创建Vue项目首先,我们需要创建一个Vue项目。可以使用VueCLI来快速创建一个新的Vue项目,或者手动在HT

本站需要重新写作的内容是:9需要重新写作的内容是:月需要重新写作的内容是:23需要重新写作的内容是:日消息,动画剧集《明日方舟》的第二季主线剧《明日方舟:冬隐归路》公布定档需要重新写作的内容是:PV,将于需要重新写作的内容是:10需要重新写作的内容是:月需要重新写作的内容是:7需要重新写作的内容是:日需要重新写作的内容是:00:23需要重新写作的内容是:正式上线,点此进入主题官网。需要重新写作的内容是:本站注意到,《明日方舟:冬隐归路》是《明日方舟:黎明前奏》的续作,剧情简介如下:为阻止感染者组
