day20-Button Ripple Effect(按钮涟漪效应)

2023-10-18 13:30

本文主要是介绍day20-Button Ripple Effect(按钮涟漪效应),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

50 天学习 50 个项目 - HTMLCSS and JavaScript

day20-Button Ripple Effect(按钮涟漪效应)

效果

在这里插入图片描述
在这里插入图片描述

index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Button Ripple Effect</title><link rel="stylesheet" href="style.css" />
</head><body><!-- 按钮 --><!-- ripple  涟漪--><button class="ripple">点击我</button><script src="script.js"></script>
</body></html>

style.css

/* 引入字体 */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');* {box-sizing: border-box;
}body {background-image: linear-gradient(blue 0%,skyblue 50%,blue 100%);font-family: 'Roboto', sans-serif;display: flex;align-items: center;justify-content: center;height: 100vh;overflow: hidden;margin: 0;
}/* 按钮 */
button {background-color: rgb(0, 234, 255);color: #fff;border: 1px black solid;font-size: 14px;/* 将文本大写 */text-transform: uppercase;letter-spacing: 2px;padding: 20px 30px;overflow: hidden;margin: 10px 0;position: relative;outline: none;
}/* 按钮涟漪效果 */
button .circle {position: absolute;background-color: #fff;width: 100px;height: 100px;border-radius: 50%;transform: translate(-50%, -50%) scale(0);/* 动画 */animation: scale 0.5s ease-out;
}/* 动画 */
@keyframes scale {to {transform: translate(-50%, -50%) scale(3);opacity: 0;}
}

script.js

// 重点是 flex transform animation position: absolute; rotate 的应用// 1.获取元素节点
const buttons = document.querySelectorAll('.ripple');//按钮元素节点
// 2.遍历添加点击事件
buttons.forEach(button => {button.addEventListener('click', function (e) {// 鼠标的位置const x = e.clientXconst y = e.clientY// 计算了按钮相对于其父元素(body)的偏移量,即按钮顶部和左侧的位置。const buttonTop = e.target.offsetTopconst buttonLeft = e.target.offsetLeft// 计算了鼠标点击位置相对于按钮的内部位置,即点击位置距离按钮顶部和左侧的距离。const xInside = x - buttonLeftconst yInside = y - buttonTop// 创建spanconst circle = document.createElement('span')// 添加circle样式,并设置位置circle.classList.add('circle')circle.style.top = yInside + 'px'circle.style.left = xInside + 'px'this.appendChild(circle)// 0.5秒后移除span,防止过多setTimeout(() => circle.remove(), 500)})
})

这篇关于day20-Button Ripple Effect(按钮涟漪效应)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232867

相关文章

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

PNG透明背景按钮的实现(MFC)

问题描述: 当前要在对话框上添加一个以两个PNG图片作为背景的按钮,PNG图的背景是透明的,按钮也要做出相同的透明效果。并且鼠标不在按钮上时,按钮显示"bg1.png";鼠标移动到按钮上时,按钮显示"bg2.png" 开发环境为VS2010。 解决办法: 使用GDI+库装载PNG图片,并使用MFC Button Control和CMFCButton类结合,调用CMFCButton

龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为: 借助RT-Thread和LVGL

致远个性化之--发起流程页面,去掉【查看流程】按钮

需求 近期在做的项目中,遇到一个需求,想把发起流程页面中的【查看流程】按钮去掉,只让员工预测流程,知道自己的事项流程走向,不让看全局流程图。包含PC端和移动端,以及微协同端。 如下图效果示例: 实现 此需求,只能通过修改页面代码实现。在此不分析实现过程,现把具体实现方式呈现如下,各位如有需求可参照设置。适用版本V9.0,其他版本未进行测试,估计不会有大的差别! PC端 找到文件

如何在Excel中创建一个VBA宏,并设置一个按钮来执行这个宏

下面是一个详细的步骤指南 步骤1:创建VBA宏 1. 打开Excel并按 `Alt + F11` 打开VBA编辑器。 2. 在VBA编辑器中,选择 `Insert` > `Module` 来插入一个新的模块。 3. 将以下代码粘贴到模块中: ```vba Sub CreateNewSheet()' 声明一个工作表对象Dim newSheet As Worksheet' 添加一个新的工作表S

Vue3实现点击按钮下载头像功能

要实现的效果 点击头像右上角弹出选项,点击保存图片可以把图片下载保存到本地 实现方式关键代码 1.第一种,直接创建a标签给头像地址。进行下载 // 创建一个隐藏的 <a> 标签const link = document.createElement("a");link.href = headPic; // 设置为图片的 URLlink.download = "avatar.jpg"; //

Android ToggleButton 开关按钮

ToggleButton相关属性,方法android:textOn="On"android:textOff="Off"android:checked="true"setChecked(boolean) package shortcut.song.com.myapplication;import android.support.v7.app.AppCompatActivity;impo

Android RadioButton 单选按钮

RadioGroup 单选按钮组, 可以包含多个单选按钮,当单选按钮选中状态改变时会触发setOnCheckedChangeListener package shortcut.song.com.myapplication;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;imp