JSは星を消すケースを実現する

JSは星を消すケースを実現する

この記事の例では、星を消すためのJSの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

星を破壊することによる影響:

機能要件:

1. 星をクリックすると消えます。
2. 毎秒自動的に星を生成する
3. 星の大きさと位置はランダムです

ケースコードと分析:

HTML および CSS コード:

 * {
        マージン: 0;
        パディング: 0;
        ボックスのサイズ: 境界線ボックス;
    }
 
    div {
        位置: 相対的;
        幅: 1000ピクセル;
        高さ: 500px;
        マージン: 100px 自動;
        背景色: 黒;
    }
</スタイル>
 
<本文>
    <div>
 
    </div>
  • 本文ではランダムに生成された星を保持するためのdivのみが必要です
  • divボックスには位置が必要です(星のランダムな位置は位置の左と上の値に基づきます)

JSコード:

var div = document.querySelector('div');//divボックスを取得する function creatImg(num) {
            for (var i = 0; i < num; i++) { // 星をランダムに生成します var imgs = document.createElement('img'); // img タグを作成します imgs.style.position = 'absolute'; // 星の画像に絶対位置を追加します var width = Math.floor(Math.random() * (50 - 10 + 1) + 10);
                var height = width; // 幅と高さをランダムに生成します。星の幅と高さは一定です。 var top = Math.floor(Math.random() * (450 - 0 + 1) + 0);
                var left = Math.floor(Math.random() * (950 - 0 + 1) + 0);
 
                //星の幅、高さ、左、上の値をランダムに生成されたものに変更します。imgs.style.width = width + 'px';
                imgs.style.height = 高さ + 'px';
                imgs.style.left = 左 + 'px';
                imgs.style.top = top + 'px';
 
                //星の画像へのリンクをimgタグに追加します。imgs.src = 'images/xingxing.gif';
            
                // 作成した img タグを div ボックスに追加します div.appendChild(imgs);
            }
        }

注意: width や left などの単位を持つプロパティを変更する場合は、必ず単位を追加してください。

creatImg(5); //関数を呼び出して5つの星を生成します setInterval(function () { //1秒ごとにコードを実行します var img = document.querySelectorAll('img'); //星の画像を取得します //各星にクリックイベントを追加します for (var i = 0; i < img.length; i++) {
                img[i].addEventListener('click', 関数() {
                    //クリック後にクリックした画像を削除する
                    div.removeChild(これ);
                })
            }
            画像を作成します(1);
        }, 1000);

写真を取得すると、divボックス内の星の写真がすべて取得され、1つだけ取得されるわけではありません。

取得された写真は疑似配列の形で存在するため、それらを走査することでクリック イベントを 1 つずつバインドできます。

ケースで使用した JS 知識ポイント: (色が付いているものがケースで使用されます)

ノード操作

ノードの作成

ドキュメント.createElement()
ドキュメント.createTextNode()
ドキュメント.createTextNode()

ノードを追加

node.appendCild(child) (要素の追加)
node.insertBefore (新しい子要素、挿入する位置要素)

ノードを削除

node.removeChild(child) 親要素内の子ノードを削除します

スタイル属性の操作

要素スタイル

1.element.style.backgroundColor = '赤';
2. JSのスタイルではキャメルケースの命名法が使用される
3. JSはスタイル操作を変更し、インラインスタイルを生成するため、CSSの重みが比較的高くなります。

要素.クラス名

1. 多様なスタイルや複雑な機能を持つ状況に適用可能
2. classNameは要素のクラス名を直接変更し、元のクラス名を上書きします。
3. 複数のクラス名セレクターを使用できる

タイマー

window.setTimeout(call function, [遅延するミリ秒数]);

1. setTimeout()の呼び出し関数をコールバック関数として呼び出します。
2. ウィンドウは省略可能
3. この呼び出し関数は、関数または関数名を直接記述するか、文字列「文字名」を受け取ることができます。
4. 省略した場合、遅延のデフォルト値はミリ秒単位で 0 になります。単位はミリ秒である必要があります。
5. タイマーは複数存在する場合があり、タイマーには識別子が割り当てられることが多い
6.一度だけ実行する

window.setInterval (関数呼び出し、[遅延するミリ秒数]);

1. setTimeout()の呼び出し関数をコールバック関数として呼び出します。
2. ウィンドウは省略可能
3. この呼び出し関数は、関数または関数名を直接記述するか、文字列「文字名」を受け取ることができます。
4. 省略した場合、遅延のデフォルト値はミリ秒単位で 0 になります。単位はミリ秒である必要があります。
5. タイマーは複数存在する場合があり、タイマーには識別子が割り当てられることが多い
6.繰り返し

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 星を消すための js (Web 簡易版)
  • 星消しゲームの簡易版を実現するJavaScript
  • JSは星を破壊するゲームを実現する

<<:  デザイン理論:テキスト表現とユーザビリティ

>>:  HTMLにおける絶対パスと相対パスの違いの分析

推薦する

CnBlogs カスタムブログスタイルの共有

半夜かけてようやくブログのスタイルを大体完成させることができました。ブログ全体が青を基調としていて、...

mysql 5.6.21 のインストールと設定の詳細な手順

1. 概要MySQL バージョン: 5.6.21ダウンロードアドレス: https://dev.my...

Ubuntu 20.04 ファイアウォール設定の簡単なチュートリアル (初心者)

序文ますます便利になった今日のインターネット社会では、さまざまなインターネット ランサムウェア ウイ...

Vue で円形プログレスバーを実装する例

データ表示は、常にあらゆる職業の人々が求めているものです。特にフロントエンド開発業界では、データを表...

dockerコンテナは直接実行され、pingを介してパブリックIP操作を取得します。

コンテナを通じてローカル パブリック IP アドレスを取得します。ローカル IP アドレスを使用して...

vue+element で動的スキニングを実装するためのサンプルコード

プロジェクトのテーマがすべての人の美的感覚を満足できないこともあります。このとき、スキン変更機能は非...

JavaScriptイベント実行メカニズムの深い理解

目次序文ブラウザJS非同期実行の原理ブラウザのイベントループ実行スタックとタスクキューマクロタスクと...

Ubuntu 20.04でAliソースを変更する方法

なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...

MySQL 1対多関連クエリのページングエラー問題の解決方法

XML価格照会のクエリデータにはリストが含まれているため、コレクションが必要です <結果マップ...

フロントエンド制作に関する簡単な議論: 互換性のために IE6 はまだ必要ですか?

国内市場ではIE6~7のサポートに対する一定の需要がまだありますが、フロントエンド開発者として、私た...

要素の円弧モーションを実現する CSS3 サンプルコード

CSS を使用して要素の円弧の動きを制御する方法CSS3 の新しい属性 transfrom トランジ...

MySQL でテーブルを削除する 3 つの方法 (要約)

ドロップテーブルドロップはテーブル情報を直接削除するため、最も高速ですが、データを取得することはでき...

mysql8.0 でユーザーを作成して権限を付与する際のエラーの解決方法の詳細な説明

質問1:エラーを報告する書き込み方法: GRANT OPTION を使用して、'123123...

MySQL データベースは XA 仕様をどのように実装しますか?

MySQL 一貫性ログMySQL データベースの電源が切れた場合、コミットされていないトランザクシ...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...