HTML5实现下雪效果的实例代码分享
下雪实例
知识点:
canvas画布
绘画函数
效果:
源码:
------------------------------
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content=""> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>下雪</title> <style> *{padding:0;margin:0} html{overflow:hidden} </style> </head> <body> <canvas id="canvas" style="background:#111"></canvas> <audio src="http://dx.sc.chinaz.com/Files/DownLoad/sound1/201210/2178.mp3" autoplay loop/> <audio src="http://dx.sc.chinaz.com/Files/DownLoad/sound1/201205/1430.mp3" autoplay loop/> <script type="text/javascript"> window.onload = function(){ //获取画布对象 var canvas = document.getElementById("canvas"); //获取画布的上下文 var context =canvas.getContext("2d"); //获取浏览器屏幕的宽度和高度 var w = window.innerWidth; var h = window.innerHeight; //设置canvas的宽度和高度 canvas.width = w; canvas.height = h; //1:如何产生雪花,一个圆 ,arc(x,y,r,start,end) //初始化雪花数量 var num = 200; //雪花数组 var snows = []; for(var i=0;i<num;i++){ //x,y圆心掉的坐标位置,r代表圆的半径,d每个圆的每个圆之间的间距,c代表的颜色 var r = randColor(); snows.push({ x:Math.random()*w, y:Math.random()*h, r:Math.random()*10, d:Math.random()*num }); }; //绘画的函数 function draw(){ context.clearRect(0,0,w,h); context.beginPath(); for(var i=0;i<num;i++){ var snow = snows[i]; context.fillStyle = "rgba(255,255,255,0.9)"; context.moveTo(snow.x,snow.y); context.arc(snow.x,snow.y,snow.r,0,Math.PI*2); } context.fill(); //掉落 drop(); }; var angle = 0; function drop() { angle += 0.01; for(var i = 0; i < num; i++){ var p = snows[i]; //记住两个公式:Math.sin(弧度)返回是一个0 1 -1 的数字 //math.cos(1 0 -1 ) 自由体, p.y += Math.cos(angle+p.d) + 1 + p.r*0.625; p.x += Math.sin(angle) * 8 ; //如果雪花到了边界,进行边界处理 if(p.x > w+5 || p.x < -5 || p.y > h){ if(i%4 > 0) { snows[i] = {x: Math.random()*w, y: -10, r: p.r, d: p.d}; }else{ //控制方向 if(Math.sin(angle) > 0){ snows[i] = {x: -5, y: Math.random()*h, r: p.r, d: p.d}; }else{ snows[i] = {x: w+5, y: Math.random()*h, r: p.r, d: p.d}; } } } } }; //执行和调用函数 draw(); setInterval(draw,10); //随机颜色 function randColor(){ var r = Math.floor(Math.random() * 256); var g = Math.floor(Math.random() * 256); var b = Math.floor(Math.random() * 256); return "rgb("+r+","+g+","+b+")"; }; }; </script> </body> </html>
Atas ialah kandungan terperinci HTML5实现下雪效果的实例代码分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Panduan untuk Sempadan Jadual dalam HTML. Di sini kita membincangkan pelbagai cara untuk menentukan sempadan jadual dengan contoh Sempadan Jadual dalam HTML.

Ini ialah panduan untuk Nested Table dalam HTML. Di sini kita membincangkan cara membuat jadual dalam jadual bersama-sama dengan contoh masing-masing.

Panduan untuk HTML margin-kiri. Di sini kita membincangkan gambaran keseluruhan ringkas tentang HTML margin-left dan Contoh-contohnya bersama-sama dengan Pelaksanaan Kodnya.

Panduan untuk Susun Atur Jadual HTML. Di sini kita membincangkan Nilai Susun Atur Jadual HTML bersama-sama dengan contoh dan output n perincian.

Panduan untuk Pemegang Tempat Input HTML. Di sini kita membincangkan Contoh Pemegang Tempat Input HTML bersama-sama dengan kod dan output.

Panduan untuk Memindahkan Teks dalam HTML. Di sini kita membincangkan pengenalan, cara teg marquee berfungsi dengan sintaks dan contoh untuk dilaksanakan.

Panduan kepada Senarai Tertib HTML. Di sini kami juga membincangkan pengenalan senarai dan jenis Tertib HTML bersama-sama dengan contoh mereka masing-masing

Panduan untuk Butang onclick HTML. Di sini kita membincangkan pengenalan, kerja, contoh dan onclick Event masing-masing dalam pelbagai acara.
