亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

js實現隨機圓與矩形功能

瀏覽:65日期:2024-04-13 14:04:34

本文實例為大家分享了js實現隨機圓與矩形功能的具體代碼,供大家參考,具體內容如下

1、節點操作版

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>DOM節點操作版本</title></head><style> *{ margin: 0;padding: 0; } html,body,.box{ width: 100%;height: 100%; } #content{ background: #f5f5f5; } .circle{ border-radius: 50%;position: absolute; } .rect{ position: absolute; } .btn{ position: fixed;top: 0;left: 0; }</style><body> <div class='box'></div> <div class='btn'> <button id='createCircle'>創建隨機圓</button> <button id='createRect'>創建隨機矩形</button> </div></body><script> class Public{ constructor(){ this.x = this.randomR(0,1800); this.y = this.randomR(40,806); this.color = this.randomColor(); this.r = this.randomR(10,20); } randomR(min,max){//指定范圍內的隨機半徑 return parseInt(Math.random() * (max - min) + min); } randomColor(){//隨機顏色 let rgba = `rgba(${this.randomR(0,255)},${this.randomR(0,255)},${this.randomR(0,255)},1)`; return rgba; } } class Circle extends Public{ constructor(){ super(); } circle(){ const {r,x,y,color} = this; const contentElem = document.getElementById('content'); let declareElem = document.createElement('div'); declareElem.className = 'circle'; declareElem.style.width = `${r * 2}px`; declareElem.style.height = `${r * 2}px`; declareElem.style.background = color; declareElem.style.top = `${y}px`; declareElem.style.left = `${x}px`; contentElem.appendChild(declareElem); } } class Rect extends Public{ constructor(){ super(); } rect(){ const {x,y,color} = this; const contentElem = document.getElementById('content'); let declareElem = document.createElement('div'); declareElem.className = 'rect'; declareElem.style.width = `${this.randomR(20,30)}px`; declareElem.style.height = `${this.randomR(20,30)}px`; declareElem.style.background = color; declareElem.style.top = `${y}px`; declareElem.style.left = `${x}px`; contentElem.appendChild(declareElem); } } document.getElementById('createCircle').onclick = () => { new Circle().circle(); } document.getElementById('createRect').onclick = () => { new Rect().rect(); }</script></html>

2、鼠標拖動版本(矩形版本類似)

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>鼠標拖動版本</title></head><style> *{ margin: 0;padding: 0; } html,body,.box{ width: 100%;height: 100%; } #content{ background: #f5f5f5; } .circle{ border-radius: 50%;position: absolute; }</style><body> <div class='box'></div></body><script> class Public{ constructor(x,y){ this.x = x; this.y = y; this.color = this.randomColor(); this.r = this.randomR(10,20); } randomR(min,max){//指定范圍內的隨機半徑 return parseInt(Math.random() * (max - min) + min); } randomColor(){//隨機顏色 let rgba = `rgba(${this.randomR(0,255)},${this.randomR(0,255)},${this.randomR(0,255)},1)`; return rgba; } } class Circle extends Public{ constructor(x,y){ super(x,y); } circle(){ const {r,x,y,color} = this; const contentElem = document.getElementById('content'); let declareElem = document.createElement('div'); declareElem.className = 'circle'; declareElem.style.width = `${r * 2}px`; declareElem.style.height = `${r * 2}px`; declareElem.style.background = color; declareElem.style.top = `${y}px`; declareElem.style.left = `${x}px`; contentElem.appendChild(declareElem); setTimeout(() => { declareElem.remove(); },100); } } document.getElementById('content').onmousemove = (e) => { const {clientX,clientY} = e || window.event; new Circle(clientX,clientY).circle(); }</script></html>

3、canvas版本

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>Document</title> <style> #canvas{margin: 0 auto;background: #000;box-shadow: 0 0 10px #000;} </style></head><body> <canvas id='canvas'></canvas></body><script> var _={ random:function(start,stop){ return parseInt(Math.random()*(stop-start)+start); } } window.onload=function(){ const canvas=document.getElementById('canvas'); const ctx=canvas.getContext('2d'); canvas.width='1000'; canvas.height='600'; class ball{ constructor(x,y,color){ this.x=x; this.y=y; this.r=40; this.color=color; } render(){ ctx.save(); ctx.beginPath(); ctx.arc(this.x,this.y,this.r,0,Math.PI*2); ctx.fillStyle=this.color; ctx.fill(); ctx.restore(); } } class moveBall extends ball{ constructor(x,y,color){ super(x,y,color); this.dx=_.random(-5,5); this.dy=_.random(-5,5); this.dr=_.random(1,3); } updated(){ this.x+=this.dx; this.y+=this.dy; this.r-=this.dr; if(this.r<=0){ this.r=0; } } } let BallArr=[]; let Color=['red','green','blue','white','orange']; canvas.addEventListener('mousemove',function(e){ let Ball=new moveBall(e.offsetX,e.offsetY,Color[_.random(0,Color.length-1)]); BallArr.push(Ball); }); setInterval(()=>{ ctx.clearRect(0,0,canvas.width,canvas.height); for(let i=0;i<BallArr.length;i++){ BallArr[i].render(); BallArr[i].updated(); } },50); }</script></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 亚洲精品一区二区手机在线 | 黄色网免费看 | 国产成人91一区二区三区 | 欧美日韩国产亚洲一区二区三区 | 免费看在线偷拍视频 | 国产欧美激情一区二区三区 | 国产剧情精品在线观看 | 亚洲成人在线网 | 99久久免费看精品国产一区 | 久久国产成人福利播放 | 日本无吗中文字幕免费婷婷 | 91原创视频 | 成人青草亚洲国产 | 国产高清在线免费视频 | 高清国产美女在线观看 | 91精品免费观看老司机 | 免费看黄网站大全 | 日韩一区国产二区欧美三区 | 三黄日本三级在线观看 | 久久精品一区二区三区日韩 | 国产老肥熟xxxx | 我看逼逼 | 日本美女视频韩国视频网站免费 | 国产在线拍小情侣国产拍拍偷 | 黄网址在线永久免费观看 | 亚洲精品日韩中文字幕久久久 | 日韩欧美在线视频观看 | 精品国产高清自在线一区二区三区 | 鲁大师手机在线观看视频 | 中文字幕极速在线观看 | 久久精品免费播放 | 欧美一区二区三区播放 | 啪啪三级 | 国产黄色一级毛片 | 97精品高清一区二区三区 | 羞羞答答91麻豆网站入口 | 亚洲高清视频一区 | 黄色香蕉视频网站 | 亚洲精品久久久久久久网站 | 欧美日本一道高清二区三区 | 91麻豆精品国产高清在线 |