首先在代码的如下位置打印事件对象,检查是不是重复调用了:
结果点击上面的“waves”和“btn”按钮分别返回了不同的事件对象,所以排除重复调用的可能。
在代码的129行,将动画定时器的时间改大(减慢动画执行速度),观察效果:
经观察,发现这个“水波纹”特效是全屏的,你看到的点击一个按钮后两个按钮上都有水波纹,其实是因为生成的那个水波纹动画层全屏覆盖住了整个页面,由于水波纹层是白色半透明的,所以页面的白色区域下你看不见,有其他颜色的区域都会看见(你可以把body的背景颜色改为除白色外的其他颜色,再点按钮试试)。
根因已经找到,解决的办法很简单,让生成的水波纹层不超出当前按钮区域即可,具体为:在代码第20行,为.waves, .btn 增加两行CSS代码:
position: relativeoverflow: hidden
这部分的源代码,很简洁明了。
关键是这一块,一个水波纹散开的效果
style=“-webkit-mask: -webkit-gradient(radial, 17 17, 123, 17 17, 138, from(rgb(0, 0, 0)), color-stop(0.5, rgba(0, 0, 0, 0.2)), to(rgb(0, 0, 0)))”
帮到你的话还请不吝采纳,谢谢。