首页 > 其他分享 >原生JS实现涟漪按钮特效

原生JS实现涟漪按钮特效

时间:2023-02-09 12:35:57浏览次数:55  
标签:特效 linear ripples JS let 涟漪 background height


给大家分享一个用原生JS实现的涟漪按钮特效,效果如下:

原生JS实现涟漪按钮特效_代码实现

以下是代码实现,欢迎大家复制粘贴和收藏。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>原生JS实现按钮涟漪特效</title>
<style>
* {
margin: 0;
padding: 0;
}

body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #040d15;
}

a {
position: relative;
display: inline-block;
padding: 12px 36px;
margin: 10px 40px;
color: #fff;
text-decoration: none;
text-transform: uppercase;
font-size: 18px;
letter-spacing: 2px;
border-radius: 40px;
background: linear-gradient(90deg, #0162c8, #55e7fc);
overflow: hidden;
}

a:nth-child(2) {
background: linear-gradient(90deg, #755bea, #ff72c0);
}

span {
position: absolute;
background: #fff;
transform: translate(-50%, -50%);
border-radius: 50%;
animation: animate 1s linear infinite;
}

@keyframes animate {
0% {
width: 0;
height: 0;
opacity: 0.5;
}

100% {
width: 500px;
height: 500px;
opacity: 0;
}
}
</style>
</head>

<body>
<a href="#">Button</a>
<a href="#">Button</a>
<script>
const buttons = document.querySelectorAll('a');
buttons.forEach(button => {
button.addEventListener('click', function (e) {
let x = e.clientX - e.target.offsetLeft;
let y = e.clientY - e.target.offsetTop;
let ripples = document.createElement('span');
ripples.style.left = x + 'px';
ripples.style.top = y + 'px';
this.appendChild(ripples)
setTimeout(() => {
ripples.remove()
}, 1000)
})
})
</script>
</body>

</html>

标签:特效,linear,ripples,JS,let,涟漪,background,height
From: https://blog.51cto.com/u_15959833/6046792

相关文章

  • CSS 3.0实现卡片悬停立体特效
    今天给大家分享一个用CSS3.0实现的卡片悬停立体特效,效果如下:以下是代码实现,欢迎大家制复粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="U......
  • CSS 3.0文字悬停跳动特效
    给大家分享一个用CSS3.0实现的文字悬停跳动特效,效果如下:  以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="U......
  • CSS 3.0实现霓虹灯按钮动画特效
    今天给大家分享一个用CSS3.0实现的霓虹灯按钮动画特效,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8">......
  • CSS 3.0实现的悬停菜单特效
    今天给大家分享一个用CSS3.0实现的悬停菜单特效,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><m......
  • CSS 3.0扭曲实现的滚动倾斜背景特效
    今天给大家分享一个用CSS3.0扭曲实现的滚动倾斜背景特效,效果如下: 以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF......
  • CSS 3.0中裁剪图像的特效
    在有CSS3.0之前裁剪图片实现也是颇有难度的,现在我们有了两个非常方便简单的属性可以实现裁剪,那就是object-fit和obectj-position,这两个属性可以让我们改变图片的大小,但是......
  • Darkmode.js实现黑暗模式
    运用CSS3.0的过滤属性可以实现黑暗模式,当我们用这个属性实现黑暗模式时,我们会发现图片的颜色会受影响,并不是很美观,是无法完美切换黑暗模式的,而最近出了一个JavaScript辅助......
  • 原生JS实现一个好看计数器
    今天给大家分享一个用原生JS实现的好看计数器,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><meta......
  • CSS 3.0中图片颜色过滤特效
    给大家分享一个用CSS3.0写的图片颜色过滤的特效,效果如下:以下是代码实现,欢迎大家复制粘贴和收藏。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><m......
  • P11:JSX代码注释、HTML添加class、JSX中解析html、JSX中label激活文本框
    React16基础​​阐述​​​​JSX代码注释​​​​JSX中的class陷阱​​​​JSX中的html解析问题​​​​JSX中``标签的坑​​阐述通过之前的教程作完“大宝剑”菜单后,如......