この記事の例では、動的な背景を実現するためのjsの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 1. 次のコードをコピーしてjsファイルとして保存します。 window.onload = 関数(){ // デフォルト値 8px->0px から本体の余白を定義します ドキュメントのbodyスタイルにマージンを付ける ドキュメントのスタイルの背景 = "#30333F"; //キャンバスを作成します document.body.appendChild(document.createElement('canvas')); var キャンバス = document.querySelector('キャンバス'), ctx = canvas.getContext('2d') //ctxはキャンバスに描画するためのAPI/DOMを返します キャンバスの幅 = ウィンドウの内側の幅; キャンバスの高さ = ウィンドウの内側の高さ; canvas.style.position = '固定'; ctx.lineWidth = .3; ctx.strokeStyle = (新しいColor(150)).style; //マウスの有効範囲を定義する var mousePosition = { x: 30 * キャンバス幅 / 100, y: 30 * キャンバスの高さ / 100 }; var ドット = { nb: 1000, //ドットの総数 距離: 50, d_半径: 100, 配列: [] }; //カラークラスを作成します。カラークラスは文字列型 rgba を返します (*,*,*,.8) 関数 mixComponents(comp1, weight1, comp2, weight2) { (comp1 * weight1 + comp2 * weight2) / (weight1 + weight2) を返します。 } 関数 averageColorStyles(dot1, dot2) { var color1 = dot1.color, ドットの色を変更する var r = mixComponents(color1.r, dot1.radius, color2.r, dot2.radius), g = mixComponents(color1.g、dot1.radius、color2.g、dot2.radius)、 b = mixComponents(color1.b、dot1.radius、color2.b、dot2.radius); createColorStyle(Math.floor(r), Math.floor(g), Math.floor(b)) を返します。 } 関数 colorValue(min) { Math.floor(Math.random() * 255 + min) を返します。 } 関数createColorStyle(r, g, b) { 'rgba(' + r + ',' + g + ',' + b + ', 0.8)' を返します。 } 関数Color(min){ 最小値 = 最小値 || 0; this.r = colorValue(最小値); this.g = colorValue(最小値); this.b = colorValue(最小値); this.style = createColorStyle(this.r、this.g、this.b); } //Dotクラスと一連のメソッドを作成する function Dot() { this.x = Math.random() * キャンバスの幅; this.y = Math.random() * キャンバスの高さ; this.vx = -.5 + Math.random(); this.vy = -.5 + Math.random(); this.radius = Math.random() * 2; this.color = 新しい Color(); } ドットプロトタイプ = { 描画: 関数 () { ctx.beginPath(); ctx.fillStyle = this.color.style; ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, false); ctx.fill(); } }; function moveDots() { //Dotオブジェクトの移動 for (i = 0; i < dots.nb; i++) { var dot = dots.array[i]; dot.y < 0 || dot.y > canvas.height) の場合 { ドットvx = ドットvx; ドット.vy = - ドット.vy; } そうでない場合 (dot.x < 0 || dot.x > canvas.width) { ドットvx = - ドットvx; ドットvy = ドットvy; } ドットx + = ドットvx; ドットy + = ドットvy; } } function connectDots() { //DOtオブジェクトの接続 for (i = 0; i < dots.nb; i++) { (j = i; j < dots.nb; j++) の場合 { i_dot = ドット配列[i]; j_dot = ドット配列[j]; if ((i_dot.x - j_dot.x) < dots.distance && (i_dot.y - j_dot.y) < dots.distance && (i_dot.x - j_dot.x) > - dots.distance && (i_dot.y - j_dot.y) > - dots.distance) { if ((i_dot.x - mousePosition.x) < dots.d_radius && (i_dot.y - mousePosition.y) < dots.d_radius && (i_dot.x - mousePosition.x) > - dots.d_radius && (i_dot.y - mousePosition.y) > - dots.d_radius) { ctx.beginPath(); ctx.strokeStyle = averageColorStyles(i_dot, j_dot); ctx.moveTo(i_dot.x, i_dot.y); ctx.lineTo(j_dot.x, j_dot.y); ctx.stroke();//定義されたルートを描画します ctx.closePath();//現在のポイントから開始ポイントに戻るパスを作成します} } } } } function createDots(){//nb 個の Dot オブジェクトを作成する for (i = 0; i < dots.nb; i++) { dots.array.push(新しいDot()); } } function drawDots() { //Dotプロトタイプチェーンを参照し、drawメソッドを使用して、キャンバスにDotオブジェクトを描画します for (i = 0; i < dots.nb; i++) { var dot = dots.array[i]; ドットを描画します。 } } 関数animateDots() { ctx.clearRect(0, 0, canvas.width, canvas.height); //キャンバスをクリアします。そうしないと、線が接続されます。moveDots(); 接続ドット(); ドットを描画します。 アニメーションフレームをリクエストします(ドットをアニメートします); } createDots(); //Dot クラス関数の作成に使用します requestAnimationFrame(animateDots); //キャンバス独自の 60Hz リフレッシュ画面キャンバス メソッドを使用します document.querySelector('canvas').addEventListener('mousemove', function (e) { マウスの位置.x = e.pageX; マウスの位置.y = e.pageY; }) document.querySelector('canvas').addEventListener('mouseleave', function (e) { //マウスが離れると、接続は自動的にキャンバスの中央に戻ります。mousePosition.x = canvas.width / 2; マウスの位置.y = キャンバスの高さ / 2; }) } 2. 次に、動的背景を使用する必要があるHTMLページにjsファイルをインポートします。 効果は以下のとおりです。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
目次1. css() の基本的な使用法: 1.1 CSSプロパティを取得する1.2 CSSプロパティ...
1. コンポーネントをインストールする yum install epel-rpm-macros.no...
目次概要マップされた型を使用して Object.freeze() を構築するマッピングタイプの構文は...
1. MySQLをインストールします。対応するソフトウェアをインストールするには、次の 3 つのコマ...
Mysqlは3種類のロック構造をサポートしていますテーブルレベルのロック、低オーバーヘッド、高速ロッ...
序文:サンドボックスといえば、私たちの頭には反射的に上の写真が思い浮かび、すぐに興味がわいてくるかも...
1. 絶対位置とマージンを使用するこの方法の原則は、左側と右側をドキュメントの流れから外れるように配...
目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...
乱雑なログ日常的に使用される Nginx は、静的リソース サーバーとリバース プロキシ サーバーの...
MySQL のパフォーマンスに問題があると思われる場合は、通常、まずshow processlist...
この記事の例では、文字の出現回数をカウントするJavaScriptの具体的なコードを参考までに共有し...
まず効果を見てみましょう: html <a href="#"> &l...
目次リレーショナルデータベースとは何ですか?非リレーショナルデータベースとは何ですか? MySQL ...
MySQLの読み書き分離の落とし穴読み取りと書き込みの分離の主な目的は、メイン データベースの負荷を...
設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...