技术概述
关于前端多边形的绘制,体会和优劣:
1,透明border方法,导致元素本身的占/定位很迷,包括border-top顶部超出父元素并且子元素不是很好定位和约束;因为border被用过再加border也无能无力,box-shadow之类也收影响。适合承载简单的展示元素。
2,background渐变透明的方法,在无border的情况下可以装作外表是多边形,但是实际上只是利用背景画出“图像”,但是很多利用no-repeat绘制复杂图像的思路还是很厉害的,比如说张旭鑫gg的某篇画棋盘的。
3,css shape的clip-path其中的polygon,画路径,缺点是没法加border和box-shader,如果实在非它不可,可以画一个略大的路径在外面,模仿border(例如多边形边框跑马灯效果,本次案例);
4,直接用伪元素或者强制定位多个div元素,模拟成多边形的边,略繁琐并且如果计算出小数容易定位错位,如果规则简单它适合做分体类动画,比如说位移,组合的动画。
5,css的mask,作用有限,可以用来做渐变的字体颜色什么的。
本次使用的是 3和4废弃,4用出来的跑马灯效果比较割裂,但是风格值得参考,类似几个小线条游动
试验到3就达成效果了,css写了太多不想增加了。3的实现就是画了两个六边形A,B,中间夹着一个div C(提供边框的颜色),B小与A几个像素,所以C的背景旋转就会达成在 边际这个效果。C的背景使用锥形或者线性渐变,如果C旋转的时候长宽遮住A,就是scale放大,