canvas丝带背景效果
超棒的HTML5丝带背景效果
使用HTML5生成的画布彩带效果,使用原生canvas生成最后效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>丝带</title> <style type="text/css"> body{ width:100%; margin:0; overflow:hidden; user-select:none; } #info { border-radius: 3px; margin: 0; position: fixed; top: 0; right: 0; width:25em; padding:1em; text-align:center; line-height:1.3em; transition: right 0.3s cubic-bezier(.65,.18,.79,.3); font-family: 'microsoft yahei',Arial,sans-serif; color: orange; font-size:14px; } </style> </head> <body> <canvas id = 'canv'></canvas> <div id = 'info'> 点击屏幕修改背景色~~~ </div> <script> window.requestAnimFrame = (function() { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60); }; })(); var c = document.getElementById('canv'), $ = c.getContext('2d'), w = c.width = window.innerWidth, h = c.height = window.innerHeight, arr = [], u = 0; o = 0, $.fillStyle = '#FEFAE6'; $.fillRect(0,0,w,h); $.globalCompositeOperation = "source-over"; var inv = function() { $.restore(); $.fillStyle = "#" + (o ? "FEFAE6" : "000000"); $.fillRect(0, 0, w, h); $.fillStyle = "#" + (o ? "000000" : "FEFAE6"); $.save() }; window.addEventListener("touchstart", function(e){ e.preventDefault(); o = !o; inv() }, false); window.addEventListener("mousedown", function(e){ o = !o; inv() }, false); window.addEventListener("keydown", function(keydn) { if (keydn.keyCode == 32) { o = !o; inv() } }, false); window.addEventListener('resize', function(){ c.width = window.innerWidth; c.height = window.innerHeight; }, false); var ready = function() { arr = []; for (var i = 0; i < 20; i++) { set(); } } var set = function() { arr.push({ x1: w, y1: h, _x1: w - Math.random() * w, _y1: h - Math.random() * h, _x2: w - Math.random() * w, _y2: h - Math.random() * h, x2: -w + Math.random() * w, y2: -h + Math.random() * h, rot: Math.random() * 180, a1: Math.random() * 10, a2: Math.random() * 10, a3: Math.random() * 10 }); } var pretty = function() { u-=.2; for (var i in arr) { var b = arr[i]; b._x1 *= Math.sin(b.a1 -= 0.001); b._y1 *= Math.sin(b.a1); b._x2 -= Math.sin(b.a2 += 0.001); b._y1 += Math.sin(b.a2); b.x1 -= Math.sin(b.a3 += 0.001); b.y1 += Math.sin(b.a3); b.x2 -= Math.sin(b.a3 -= 0.001); b.y2 += Math.sin(b.a3); $.save(); $.globalAlpha = 0.03; $.beginPath(); $.strokeStyle = 'hsla('+ u + ', 85%, 60%, .7)'; $.moveTo(b.x1, b.y1); $.bezierCurveTo(b._x1, b._y1, b._x2, b._y2, b.x2, b.y2); $.stroke(); $.restore(); } window.requestAnimFrame(pretty); } ready(); pretty(); setTimeout(function() { var info= document.getElementById('info'); info.style.right = '-500px'; }, 5500); </script> </body> </html>
.
相关推荐
大地飞鸿 2020-11-12
星星有所不知 2020-10-12
jinxiutong 2020-07-26
MIKUScallion 2020-07-05
songfens 2020-07-05
songfens 2020-06-11
songfens 2020-06-08
northwindx 2020-05-31
northwindx 2020-05-31
northwindx 2020-05-27
northwindx 2020-05-25
MIKUScallion 2020-05-25
jinxiutong 2020-05-10
xdyangxiaoromg 2020-05-10
大地飞鸿 2020-05-06
northwindx 2020-04-25