canvas繪制萬花筒效果(代碼分享)
更新時間:2017年01月20日 15:12:01 作者:web卿年
本文主要分享了canvas繪制萬花筒效果的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧
話不多說,請看代碼:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>萬花筒</title>
<style>
canvas{
background:#eee;
}
</style>
<script>
window.onload = function(){
var canvas = document.getElementById("canvas");
var cobj = canvas.getContext("2d");
var arr = [];
var t=setInterval(function(){
cobj.clearRect(0,0,600,600);
for(var i=0;i<arr.length;i++){
cobj.save();
cobj.translate(300,300);
cobj.scale(arr[i].scales,arr[i].scales);
cobj.rotate(arr[i].angle*Math.PI/180);
cobj.fillStyle = arr[i].color;
cobj.fillRect(arr[i].num,arr[i].num,30,30);
cobj.restore();
}
},50);
setInterval(function(){
for(var i=0;i<arr.length;i++){
if(arr[i].num<=0){
arr.splice(i,1);
continue;
}
arr[i].angle+=2;
arr[i].num-=0.2;
arr[i].scales-=0.002;
if(arr[i].scales<=0.2){
arr[i].scales=0.2;
}
}
},50);
setInterval(function(){
var rect = {angle:0,num:150,scales:1,color:"rgb("+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+")"};
arr.push(rect);
},600);
}
</script>
</head>
<body>
<canvas width="600" height="600" id="canvas"></canvas>
</body>
</html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
Javascript數(shù)組操作函數(shù)總結(jié)
這篇文章主要給大家匯總介紹了Javascript數(shù)組操作函數(shù),需要的朋友可以參考下2015-02-02
使用BootStrap建立響應(yīng)式網(wǎng)頁——通欄輪播圖(carousel)
這篇文章主要介紹了使用BootStrap建立響應(yīng)式網(wǎng)頁通欄輪播圖(carousel)的相關(guān)資料,需要的朋友可以參考下2016-12-12
Javascript 函數(shù)parseInt()轉(zhuǎn)換時出現(xiàn)bug問題
天測試的測出來的。parseInt(1.13*100),實際返回值是112,下面有個示例,大家可以看看下2014-05-05
24個ES6方法解決JS實際開發(fā)問題(小結(jié))
這篇文章主要介紹了24個ES6方法解決JS實際開發(fā)問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

