1. 程式人生 > >css實現波紋回彈

css實現波紋回彈

css實現波紋回彈

比如直接點選一個盒子,讓他的背景像波紋一樣

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>滑鼠點選按鈕呈現水波擴散效果</title>

<link href="css/style.css" type="text/css" rel="stylesheet" />
<style>

.coupon {
    position: relative;
}
.coupon canvas {
    opacity
: 0.25
; position: absolute; top: 0; left: 0; }
</style> </head> <body> <li class="coupon" data-color="#ee5600" onclick="lionclick()" tapmode="activeon">不論白天黑夜,在風馳電掣的旅客列車。</li> <script type="text/javascript" > var canvas = {}, centerX = 0, centerY = 0
, color = '', containers = document.getElementsByClassName('coupon') context = {}, element = {}, radius = 0, requestAnimFrame = function () { return ( window.requestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function
(callback) {
window.setTimeout(callback, 1000 / 60); } ); } (), init = function () { containers = Array.prototype.slice.call(containers); for (var i = 0; i < containers.length; i += 1) { canvas = document.createElement('canvas'); canvas.addEventListener('click', press, false); containers[i].appendChild(canvas); canvas.style.width ='100%'; canvas.style.height='100%'; canvas.width = canvas.offsetWidth; canvas.height = canvas.offsetHeight; } }, press = function (event) { color = event.toElement.parentElement.dataset.color; element = event.toElement; context = element.getContext('2d'); radius = 0; centerX = event.offsetX; centerY = event.offsetY; context.clearRect(0, 0, element.width, element.height); draw(); }, draw = function () { context.beginPath(); context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false); context.fillStyle = color; context.fill(); radius += 8; if (radius < element.width) { requestAnimFrame(draw); } }; init();
</script> </body> </html>