一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - javascript實現點擊產生隨機圖形

javascript實現點擊產生隨機圖形

2022-01-07 16:19半成熟、 js教程

這篇文章主要為大家詳細介紹了javascript實現點擊產生隨機圖形,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了javascript實現點擊產生隨機圖形的具體代碼,供大家參考,具體內容如下

點擊產生隨機圖形

效果如下:

javascript實現點擊產生隨機圖形

用javascript來實現

主要用canvas和隨機函數完成各種圖形

第一步

在HTML和CSS中創建出現圖形的矩形和兩個按鈕。第一個按鈕用來產生圖形,第二個按鈕用來清除產生的所有圖形。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<style>
  *{
   margin: 0;
   padding: 0;
  }
  #canvas{
   border: solid 1px red;
   display: block;
   margin: 0 auto;
  }
  #father{
   width: 200px;
   margin:0 auto;
   
  }
  #btn{
   margin-right: 40px;
   cursor: pointer;
  }
  #cle{
   cursor: pointer;
  }
</style>
?
1
2
3
4
5
6
7
<body>
 <canvas id="canvas" width="600" height="600"></canvas>
 <div id="father">
  <input type="button" id="btn" value="點擊生成">
  <input type="button" id="cle" value="點擊清除">
 </div>
</body>

第二步

在javascript中分別創建用來隨機顏色的函數,點擊隨機產生圖形的函數,點擊清除屏幕的函數。

?
1
2
3
4
var canvas=document.getElementById("canvas");
 var context=canvas.getContext("2d");
 var btn=document.getElementById("btn");
 var cle=document.getElementById("cle");

設置圖形的隨機顏色

?
1
2
3
4
5
6
7
8
function color(){
  var r=Math.floor(Math.random()*255);
  var g=Math.floor(Math.random()*255);
  var b=Math.floor(Math.random()*255);
  var a=Math.random();
  var bg="rgba("+r+","+g+","+b+","+a+")";
  return bg;
 }

設置點擊按鈕隨機產生圖形的函數,第一種實心和空心矩形,第二種實心和空心圓,第三種直線,它們的位置和大小分別寫隨機函數,再分別加上canvas代碼,用來畫圖形,如context.beginPath()-context closePath()。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
btn.onclick=function(){
  var random=Math.floor(Math.random()*3+1);
  if(random==1){
   var rectr=Math.floor(Math.random()*2);
   var rectx=Math.floor(Math.random()*600);
   var recty=Math.floor(Math.random()*600);
   var rectwidth=Math.floor(Math.random()*200+200);
   var rectheight=Math.floor(Math.random()*200+200);
   if(rectr== 0){
    context.beginPath();
    context.strokeStyle=color();
    context.strokeRect(rectx,recty,rectwidth,rectheight)
    context.closePath();
   }
   else {
    context.beginPath();
    context.fillStyle=color();
    context.fillRect(rectx,recty,rectwidth,rectheight);
    context.closePath();
   }
  }
  else if(random == 2){
   var arcr=Math.floor(Math.random()*2);
   var arcx=Math.floor(Math.random()*600);
   var arcy=Math.floor(Math.random()*600);
   var arcr=Math.floor(Math.random()*300);
   if(arcr==0){
    context.beginPath();
    context.strokeStyle=color();
    context.arc(arcx,arcy,arcr,0,2*Math.PI,false);
    context.stroke();
    context.closePath();
   }
  
   else{
    context.beginPath();
    context.fillStyle=color();
    context.arc(arcx,arcy,arcr,0,2*Math.PI,false);
    context.fill();
    context.closePath();
   }
  }
  else if(random==3){
   var movex=Math.floor(Math.random()*600);
   var movey=Math.floor(Math.random()*600);
   var linex=Math.floor(Math.random()*600);
   var liney=Math.floor(Math.random()*600);
   var linew=Math.floor(Math.random()*20);
   context.beginPath();
   context.strokeStyle=color();
   context.moveTo(movex,movey);
   context.lineTo(linex,liney);
   context.lineWidth=linew;
   context.stroke();
   context.closePath();
  }
}

第三步

最后創建點擊清除屏幕的按鈕函數,根據創建的屏幕大小,在canvas中添加 context.clearRect(0,0,600,600);可實現清除屏幕。

?
1
2
3
4
5
cle.onclick=function(){
  context.beginPath();
  context.clearRect(0,0,600,600);
  context.closePath();
 }

點擊產生隨機圖形的效果完成了!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/bs775926015/article/details/113050440

延伸 · 閱讀

精彩推薦
  • js教程javascript實現點擊產生隨機圖形

    javascript實現點擊產生隨機圖形

    這篇文章主要為大家詳細介紹了javascript實現點擊產生隨機圖形,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    半成熟、9542022-01-07
  • js教程Strve.js開發一個屬于自己的庫或框架

    Strve.js開發一個屬于自己的庫或框架

    Strve.js是一個可以將字符串轉換為視圖的JS庫。這里的字符串指的是模板字符串,所以你僅需要在JavaScript中開發視圖。Strve.js不僅易于上手,還便于靈活拆裝...

    前端歷劫之路5792021-12-23
  • js教程js刪除指定位置超鏈接中含有百度與360的標題

    js刪除指定位置超鏈接中含有百度與360的標題

    最近需要將最近更新的部分內容刪除,只要標題中包括百度與360的都給刪除了,主要用到了jquery的each,需要的朋友可以參考下...

    JS教程網3682021-12-27
  • js教程詳解微信小程序「渲染層網絡層錯誤」的解決方法

    詳解微信小程序「渲染層網絡層錯誤」的解決方法

    這篇文章主要介紹了詳解微信小程序「渲染層網絡層錯誤」的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價...

    石璞東 | haha6212021-12-27
  • js教程使用Typescript開發微信小程序的步驟詳解

    使用Typescript開發微信小程序的步驟詳解

    這篇文章主要介紹了使用Typescript開發微信小程序的步驟詳解,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考...

    陳希章6652021-12-30
  • js教程js實現移動端輪播圖滑動切換

    js實現移動端輪播圖滑動切換

    這篇文章主要為大家詳細介紹了js實現移動端輪播圖滑動切換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    浪漫前端11322021-12-15
  • js教程JS+JQuery實現無縫連接輪播圖

    JS+JQuery實現無縫連接輪播圖

    這篇文章主要介紹了JS+JQuery實現無縫連接輪播圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    南柯Seven7652021-12-23
  • js教程mapboxgl實現帶箭頭軌跡線的代碼

    mapboxgl實現帶箭頭軌跡線的代碼

    這篇文章主要介紹了mapboxgl實現帶箭頭軌跡線的代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    GIS兵器庫9172021-12-27
主站蜘蛛池模板: 视频一区二区国产无限在线观看 | 成人久久伊人精品伊人 | 久久热r在线视频精品 | 色综合久久中文字幕综合网 | 人人爱天天做夜夜爽88 | 国产成人精品系列在线观看 | 91青青视频 | 欧美国产日本高清不卡 | 国产欧美日韩亚洲精品区2345 | 国产精品原创巨作无遮挡 | 国产精品嫩草影院一二三区入口 | 女女宿舍互慰h文小说 | 女教师三级做受 | 日本一二线不卡在线观看 | 日韩欧美国产一区 | 国产精品国产精品国产三级普 | 成人涩涩屋福利视频 | 国产精品一区牛牛影视 | 青青视频国产依人在线 | 日本一道高清不卡免费 | 成人小视频在线观看 | 97久久天天综合色天天综合色hd | 亚洲国产综合精品 | 黑人又大又硬又粗再深一点 | 91九色露脸| 动漫人物差差差动漫人物免费观看 | 边吃胸边膜下刺激免费男对女 | 日韩 欧美 国产 亚洲 中文 | 色热综合 | 色视频亚洲| 亚洲成年www | 日本视频在线免费播放 | 精品久久久久久国产91 | 欧美视频在线一区 | 91精品国产综合久久香蕉 | 91短视频社区在线观看 | 护士们的母狗 | 朝鲜女人性猛交 | 国产欧美另类 | 亚洲国产精品嫩草影院久久 | 亚洲一成人毛片 |