六边形边框渐变色 外发光 流光效果

901 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

效果图

image.png

了解cli-path

作用:其能裁剪可视区域 且点击事件触发的区域为裁剪后的可视区域

如何通过cli-path裁剪一个六边形呢

在cli-path中提供了一些形状的取值

取值作用
inset()定义一个 inset 矩形。
circle()定义一个圆形(使用一个半径和一个圆心位置)。
ellipse()定义一个椭圆(使用两个半径和一个圆心位置)。
polygon()定义一个多边形(使用一个 SVG 填充规则和一组顶点)。
path()定义一个任意形状(使用一个可选的 SVG 填充规则和一个 SVG 路径定义)。

polygon()与path()都能实现六边形

polygon()实现六边形

path()实现六边形

更加详细的内容,查找其他文章

思路

将图片裁剪成六边形
给装图片的容器添加伪元素 一个用于设置外发光 一个用于边框效果
外发光这个部分 通过filter: blur()实现高斯模糊效果 将容器设为圆角 效果比矩形好 再加上旋转的动画 此处待优化(我无法实现 外发光形状是六边形且动态)
边框效果 通过不断改变渐变色的角度实现 但这个方式在ios上是不可行的 因为ios不支持@property

思路二

为了在ios上也能显示 可以使用js控制渐变色角度 但我还是选择通过css实现

新增一个渐变色盒子 使其定位到图片盒子的右上角
将渐变盒子裁剪为六边形
渐变色盒子下添加一个盒子用于定义颜色 以及旋转效果