<!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">
<link rel="stylesheet" type="text/css" href="css/base.css"/>
<script src="js/rem.js" type="text/javascript" charset="utf-8"></script>
<title>html5+ js +css3 点击后水波纹扩散效果 兼容移动端-幸凡学习网</title>
<style>
body {
margin: 0;
padding: 0;
font-size: .14rem;
}
.center {
text-align: center
}
.btn {
position: relative;
width: 87%;
height: 2rem;
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" width='100%' height="100px">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) {
console.log(111)
var target = e.target;
//如果元素只有一个class那么判断条件为不等于,如果有多个,则相反
if (target.className.toLowerCase() !=='btn') {
console.log(111)
return false;
}
var rect = target.getBoundingClientRect();
var ripple = target.querySelector('.ripple');
if (!ripple) {
console.log(111)
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 换成dom节点,不然点击页面就会出现特效
document.addEventListener('click', addRippleEffect, false);
</script>
</body>
</html>
点击特效水波纹 兼容移动端
最新推荐文章于 2021-08-16 21:02:05 发布