首页 >web前端 >js教程 > 正文

通过代码示例,了解css3+javascript按钮水波纹效果

转载2021-04-29 09:26:4801146
本篇文章通过代码示例,带大家介绍一下css3+javascript实现按钮水波纹效果的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

css3+js实现按钮水纹涟漪效果

HTML

  • 首先我们用<a>标签定义两个按钮
<a href="#">button</a>
<a href="#">button</a>

CSS3

  • 调整布局样式
  • 色彩范围
* {
    margin: 0;
    padding: 0;
    font-family: 'Poppins', sans-serif; /* 字体 */
}

body {
    display: flex;
    justify-content: center;/* 弹性盒子 */
    align-items: center;
    min-height: 100vh;
    flex-direction: column;
    background: #1f2a33;
}

a {
    position: relative;
    display: inline-block;
    padding: 12px 36px;
    margin: 10px 0;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 18px;
    letter-spacing: 2px;
    border-radius: 40px;
    overflow: hidden;
    background: linear-gradient(90deg, #0162c8, #55e7fc);
}
/* 子伪类选择器 */
a:nth-child(2) {
    background: linear-gradient(90deg, #755bea, #ff72c0);
}

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

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

JavaScript

  • 启用 js 监听事件
  • 定时器
  • 目的:控制动画和单位时间内点击效果统一
const buttons = document.querySelectorAll('a');

buttons.forEach(btn => { //箭头函数 (ES6)

    btn.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);
    })
})

效果图:

涟漪效果

更多编程相关知识,请访问:编程视频课程!!

以上就是通过代码示例,了解css3+javascript按钮水波纹效果的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 专题推荐

    作者信息

    青灯夜游

    今天学习一小步,明天提升一大步

    最近文章
    php如何将字符串转换为数组544
    php怎么替换字符串中第一个字符249
    css权重是什么742
    推荐视频教程
  • JavaScript基础精讲视频教程JavaScript基础精讲视频教程
  • JavaScript设计模式完整视频教程JavaScript设计模式完整视频教程
  • JavaScript核心编程视频教程JavaScript核心编程视频教程
  • JavaScript深入视频教程JavaScript深入视频教程
  • JavaScript极速入门JavaScript极速入门
  • JavaScript函数与闭包JavaScript函数与闭包
  • 视频教程分类