开门见山
是这个,在这里,看它:react-reveal-effect
react-reveal-effect - npmhttps://www.npmjs.com/package/react-reveal-effect
优点
速度快,使用简单,直接使用 RevealEffect 组件包裹住你想要实现光效的HTML元素,就有效果了。
也可以使用useRevealEffect Hook 直接自己写光效元素的样式,很自由。
缺陷
使用嵌套父子元素实现光效边框的效果,其实并不是border。
使用background-image实现光效。如果为了不对元素本身的样式造成影响(比如和自己写的background-image冲突了),请在内部添加一个光效元素。
施加光效的元素不能透明。透明了就看到下面随着鼠标运动的background-image了。
下面推荐的库里,react-uwp可以支持元素透明。
说一点废话,推荐一点别的库
之前就对Windows 开始菜单中的按钮描边光效很馋,在网上搜了一下都没有Web的实现,连Microsoft基于React实现的官方库Fluent Design Component都没实现这个光效。。
过了很久才找到一个React的实现,是使用canvas绘制描边光效。很厉害比较完善不过性能不是很好。作者也不维护了,应该就是个玩具
(点进作者的github,可以看到他把实现光效的库剥离出来了,可以直接使用这个库实现自己的效果)
https://www.react-uwp.com/get-startedhttps://www.react-uwp.com/get-started 又找到了一个使用background-image实现描边光效的库,这个库仅用于实现描边光效,且仅适用于原生html+js,在React里使用有点=-=。不过能用。(我的库就是受到它的启发实现的。
fluent-reveal-effect - npmhttps://www.npmjs.com/package/fluent-reveal-effect 通过寻找它的Dependents也找到了一个vue的fluent design组件库
vfluentdesign - npmhttps://www.npmjs.com/package/vfluentdesign