html5 +css3 点击后水波纹扩散效果 兼容移动端
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html;charset=utf-8"/>
<meta name="viewport"
content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
<title>html5+ js +css3 点击后水波纹扩散效果 兼容移动端-幸凡学习网</title>
<style> body {
margin: 0;
padding: 0;
} .center {
text-align: center
} .btn {
position: relative;
width: 13em;
height: 3em;
margin: 2em;
border: none;
outline: none;
letter-spacing: .2em;
font-weight: bold;
background: #999;
cursor: pointer;
overflow: hidden;
user-select: none;
border-radius: 2px;
color: #fff;
} button:nth-child(2) {
background: #4285f4;
} button:nth-child(3) {
background: #00bad2;
} button:nth-child(4) {
background: #ff8a80;
} button:nth-child(5) {
background: #ffae00;
} button:nth-child(6) {
background: #aec156;
} button:nth-child(7) {
background: #a060a8;
} button:nth-child(8) {
background: #a78660;
} button:nth-child(9) {
background: #5da065;
} button:nth-child(10) {
background: #5e6b9a;
} button:nth-child(11) {
background: #9a5e5e;
} button:nth-child(12) {
background: #666;
} .ripple {
position: absolute;
background: rgba(0, 0, 0, .15);
border-radius: 100%;
transform: scale(0);
pointer-events: none;
} .ripple.show {
animation: ripple .75s ease-out;
} @keyframes ripple {
to {
transform: scale(2);
opacity: 0;
}
} </style>
</head>
<body><h1
class="center">html5 +css3 点击后水波纹扩散效果 兼容移动端</h1>
<div class="main
center">
<button class="btn">BUTTON</button>
<button
class="btn">BUTTON
</button>
<button class="btn">BUTTON</button>
<button
class="btn">BUTTON
</button>
<button class="btn">BUTTON</button>
<button
class="btn">BUTTON
</button>
<button class="btn">BUTTON</button>
<button
class="btn">BUTTON
</button>
<button class="btn">BUTTON</button>
<button
class="btn">BUTTON
</button>
<button class="btn">BUTTON</button>
<button
class="btn">BUTTON
</button>
</div>
<script>
var addRippleEffect =
function (e) {
var target = e.target;
if (target.className.toLowerCase()
!== 'btn') {
return false;
}
var rect = target.getBoundingClientRect();
var
ripple = target.querySelector('.ripple');
if (!ripple) {
ripple =
document.createElement('span');
ripple.className = 'ripple'
ripple.style.height = ripple.style.width = Math.max(rect.width,
rect.height) + 'px'
target.appendChild(ripple);
}
ripple.classList.remove('show');
var top = e.pageY - rect.top -
ripple.offsetHeight / 2 - document.body.scrollTop;
var left = e.pageX -
rect.left - ripple.offsetWidth / 2 - document.body.scrollLeft;
ripple.style.top = top + 'px'
ripple.style.left = left + 'px'
ripple.classList.add('show');
return false;
}
document.addEventListener('click', addRippleEffect, false); </script>
</body>
</html>
html5 +css3 点击后水波纹扩散效果 兼容移动端的更多相关文章
- 如何使用 HTML5 Canvas 制作水波纹效果
今天,我们继续分享 JavaScript 实现的效果例子,这篇文章会介绍使用 JavaScript 实现水波纹效果.水波效果以图片为背景,点击图片任意位置都会触发.有时候,我们使用普通的 Javasc ...
- 很实用的HTML5+CSS3注册登录窗体切换效果
1. [代码]3个很实用的HTML5+CSS3注册登录窗体切换效果 <!DOCTYPE html><!--[if lt IE 7 ]> <html lang=" ...
- 用HTML5 Canvas 做擦除及扩散效果
2013年的时候曾经使用canvas实现了一个擦除效果的需求,即模拟用户在模糊的玻璃上擦除水雾看到清晰景色的交互效果.好在2012年的时候学习HTML5的时候研究过canvas了,所以在比较短的时间内 ...
- javascript+html5+css3下拉刷新 数据效果
文章摘自:suchso.com/projecteactual/javascript-html5-css3-taobao-xiala-data.html segmentfault.com/a/11900 ...
- UWP:使用Composition实现类似安卓的水波纹Ripple效果
先放效果图: 首先,建立一个RippleHelper.cs文件,然后建立以下附加属性: IsFillEnable:是否扩大到整个控件 RippleDuration:持续时间 RippleRadius: ...
- css3动画水波纹、波浪
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HTML5/CSS3实现添加锁屏效果
锁屏效果,也就是将屏幕置于模态,不允许用户触发任何动作,只能解除锁定后才能继续使用,jQueryUI的dialog有模态对话框,这一点不难做到.那么,首先需要在页面中添加一个div层,用于做模态的层 ...
- Android 水波纹点击效果(Ripple Effect)
上周Android发布了Android M的Preview版本.但想必Android5.0很多炫酷效果,多数开发者还没有使用过,那更不要说广大用户了. 本文介绍的是Android5.0中其中一个炫酷的 ...
- Android水波纹特效的简单实现
我的开源页面指示器框架 MagicIndicator,各位一定不要错过哦. 水波纹特效,想必大家或多或少见过,在我的印象中,大致有如下几种: 支付宝 "咻咻咻" 式 流量球 &qu ...
随机推荐
- Head First Java & 重载 覆盖
- 远程修改VMware ESXi服务器的密码(SSH)
1,用vSphere client登录到服务器,将SSH启用. 2,使用ssh连接工具(我用的是secureCRT)远程登录,输入passwd,键入两次新密码,OK.
- [转发]VMware厚置备延迟置零 、 厚置备置零、精简置备 区别
1.厚置备延迟置零(zeroed thick) 以默认的厚格式创建虚拟磁盘.创建过程中为虚拟磁盘分配所需空间.创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零. ...
- android之layer-list
效果图: 实现代码: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:and ...
- BZOJ3439 Kpm的MC密码(可持久化trie)
将串反过来就变成查询前缀了.考虑建一棵可持久化trie,查询时二分答案,均摊一下复杂度即为O(mlogn). #include<iostream> #include<cstdio&g ...
- BZOJ3173 TJOI2013最长上升子序列(splay)
容易发现如果求出最后的序列,只要算一下LIS就好了.序列用平衡树随便搞一下,这里种一棵splay. #include<iostream> #include<cstdio> #i ...
- MySQL 双主问题集
最近试用MySQL高可用方案,需要配MySQL双主,对期间遇到的问题做下记录. 1.导出锁表问题 mysqldump 命令增加参数 --skip-opt -q 可避免导出时锁表: 2.导出\导入所有数 ...
- Maximum repetition substring POJ - 3693(重复次数最多的连续重复子串)
这题和SPOJ - REPEATS 一样 代码改一下就好了 这个题是求这个重复子串,还得保证字典序最小 巧妙运用sa 看这个 https://blog.csdn.net/queuelovestack ...
- [BZOJ2288&BZOJ1150]一类堆+链表+贪心问题
今天我们来介绍一系列比较经典的堆+链表问题.这类问题的特点是用堆选取最优解,并且通过一些加减操作来实现"反悔". 在看题之前,我们先来介绍一个神器:手写堆. 手写堆的一大好处就是可 ...
- c++11 委托构造
c++11 委托构造 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #includ ...