この記事では、クリックするとランダムグラフィックの生成を実現するJavaScriptの具体的なコードを紹介します。具体的な内容は次のとおりです。 クリックするとランダムなグラフィックが生成されます 効果は以下のとおりです。 JavaScriptで実装 主にキャンバスとランダム関数を使用してさまざまなグラフィックを完成させます 最初のステップ グラフィックが表示される四角形と 2 つのボタンを HTML と CSS で作成します。最初のボタンはグラフィックを生成するために使用され、2 番目のボタンは生成されたすべてのグラフィックをクリアするために使用されます。 <スタイル> *{ マージン: 0; パディング: 0; } #キャンバス{ 境界線: 実線 1px 赤; 表示: ブロック; マージン: 0 自動; } #父親{ 幅: 200ピクセル; マージン:0 自動; } #ボタン{ 右マージン: 40px; カーソル: ポインタ; } #cle{ カーソル: ポインタ; } </スタイル> <本文> <キャンバスid="キャンバス" 幅="600" 高さ="600"></キャンバス> <div id="父"> <input type="button" id="btn" value="クリックして生成"> <input type="button" id="cle" value="クリックしてクリア"> </div> </本文> ステップ2 JavaScript で、ランダムな色を設定する関数、クリック時にランダムにグラフィックを生成する関数、クリック時に画面をクリアする関数を作成します。 var キャンバス = document.getElementById("キャンバス"); var コンテキスト = canvas.getContext("2d"); var btn = document.getElementById("btn"); var cle = document.getElementById("cle"); 図形のランダムな色を設定する 関数 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+")"; bg を返します。 } ボタンをクリックしたときにランダムにグラフィックを生成する関数を設定します。最初のタイプは塗りつぶされた四角形と白抜きの四角形、2 番目のタイプは塗りつぶされた円と白抜きの円、3 番目のタイプは直線です。それらの位置とサイズをランダムに生成する関数を記述し、context.beginPath()-context closePath() などのグラフィックを描画するキャンバス コードを追加します。 btn.onclick=関数(){ var ランダム = Math.floor(Math.random()*3+1); if(ランダム==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){ コンテキスト.beginPath(); context.strokeStyle=色(); context.strokeRect(rectx,recty,rectwidth,rectheight) コンテキスト.closePath(); } それ以外 { コンテキスト.beginPath(); context.fillStyle=色(); context.fillRect(rectx,recty,rectwidth,rectheight); コンテキスト.closePath(); } } そうでない場合(ランダム == 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); (arcr==0)の場合{ コンテキスト.beginPath(); context.strokeStyle=色(); context.arc(arcx,arcy,arcr,0,2*Math.PI,false); コンテキスト.stroke(); コンテキスト.closePath(); } それ以外{ コンテキスト.beginPath(); context.fillStyle=色(); context.arc(arcx,arcy,arcr,0,2*Math.PI,false); コンテキストを埋め込む(); コンテキスト.closePath(); } } そうでない場合(ランダム==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); コンテキスト.beginPath(); context.strokeStyle=色(); コンテキストをmoveTo(movex,movey); コンテキストのlineTo(linex,liney); context.lineWidth=linew; コンテキスト.stroke(); コンテキスト.closePath(); } } ステップ3 最後に、画面をクリアするためのボタン機能を作成します。作成した画面サイズに応じて、キャンバスにcontext.clearRect(0,0,600,600)を追加して画面をクリアします。 cle.onclick=関数(){ コンテキスト.beginPath(); コンテキストをクリアする矩形(0,0,600,600); コンテキスト.closePath(); } クリックするとランダムなグラフィック効果が生成されます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Nginx キャッシュ ファイルと動的ファイルの自動バランス設定スクリプト
>>: Linux での MySQL 5.7.17 の最新安定バージョンのインストール チュートリアル
この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...
皆様の参考と操作を容易にするために、様々な主要ウェブサイトを検索し、関連するスケジュールされたタスク...
1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。 &...
目次01 レプリカセットアーキテクチャ02 MySQL Shellの紹介とインストール03 My...
TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...
目次1. 概要1. 説明文テスト2. 結果の各列の説明2. ID列の説明1. 環境整備2. expl...
1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...
SASS で定義された変数では、後で設定された値によって古い値が上書きされます。 $色: 赤; $色...
序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...
1. 重複行を見つける blog_user_relation a から * を選択 WHERE (...
この記事の例では、WeChatアプレットの検索ボックス機能を実装するための具体的なコードを参考までに...
nginx の default_server ディレクティブは、server_name と一致しない...
ブラウザの非overflow:auto要素resize伸縮機能を利用して、JavaScript を使...
Baidu には slot-scope に関する記事が既にたくさんありますが、以前よく学習しておら...
この記事では、Ubuntu18.04にmysql5.7.23をインストールする具体的な方法を参考まで...