JavaScript でクールなマウス テーリング効果を実装

JavaScript でクールなマウス テーリング効果を実装

これを見た後、あなたにも手ができて、さまざまな美しい小さなしっぽを作れるようになることを保証します!

完全なコードは次のとおりです。コメントを見れば簡単に理解できます。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>タイトル</title>
<スタイル>
    /*div スタイル*/
    #主要{
        幅: 自動;高さ: 1500px;余白: 0;背景色: 黒;
    }
</スタイル>
</head>
<本文>
        <div id="メイン"></div>
 <スクリプト>
    //===========マウス惑星のしっぽ JS コード============

    //========機能: 現在のマウス座標を取得する=========
     関数 getMousePosition(イベント) {
         var x = 0; //x 座標 var y = 0; //y 座標 //documentElement はドキュメントのドキュメント要素を返します。
         doc = ドキュメント.documentElement;
         //body はドキュメントの body 要素を返します body = document.body;
         //互換性を解決する if (!event) event = window.event;
         //マウスホイールを回した後の相対座標の差を解きます //pageYoffset は Netscape に固有です if (window.pageYoffset) {
             x = ウィンドウのページXオフセット;
             y = ウィンドウのYオフセット;
         } else{//その他のブラウザのマウススクロール x = (doc && doc.scrollLeft || body && body.scrollLeft || 0)
                 - (doc && doc.clientLeft || body && body.clientLeft || 0);
             y = (doc && doc.scrollTop || body && body.scrollTop || 0)
                 - (doc && doc.clientTop || body && body.clientTop || 0);
         }
         // イベントがトリガーされたときのブラウザ ページ (またはクライアント領域) に対するマウス ポインターの相対的な水平座標と取得した x の合計 x += event.clientX;
         // イベントがトリガーされたときのブラウザ ページ (またはクライアント領域) に対するマウス ポインターの取得された x と垂直座標 y の合計 += event.clientY;
         //xとyを返す
         {'x': x, 'y': y} を返します。
     }
     //========機能: 現在のマウス座標を取得する=========

     //=====minNumからmaxNumまでの乱数を生成します=====
    関数 randomNum(minNum,maxNum){
        スイッチ(引数.長さ){
            ケース1:
                parseInt(Math.random()*minNum+1,10) を返します。
            ケース2:
                parseInt(Math.random()*(maxNum-minNum+1)+minNum,10) を返します。
            デフォルト:
                0を返します。
        }
    }
    //=====minNumからmaxNumまでの乱数を生成します======

    //======マウス移動イベントをドキュメント全体にバインドする======
    document.onmousemove = 関数(イベント){

        // ページにタグを作成します (ここではカスタム タグ styleImg を作成します)
        var styleImg = document.createElement("div");
        // 1~5 の乱数を取得し、その乱数に応じてラベル スタイルを設定します。var r = randomNum(1,5);
        スイッチ(r){
            ケース1:
                //画像のパスを設定します。パスに応じて異なるスタイルに変更できます styleImg.innerHTML="<img src='../static/muban/images/xing01.png' style='width: 50px;height: auto;'/>"
                壊す;
            ケース2:
                styleImg.innerHTML="<img src='../static/muban/images/xing02.png' style='width: 50px;height: auto;'/>"
                壊す;
            ケース3:
                styleImg.innerHTML="<img src='../static/muban/images/xing03.png' style='width: 50px;height: auto;'/>"
                壊す;
            ケース4:
                styleImg.innerHTML="<img src='../static/muban/images/xing04.png' style='width: 50px;height: auto;'/>"
                壊す;
            ケース5:
                styleImg.innerHTML="<img src='../static/muban/images/xing05.png' style='width: 50px;height: auto;'/>"
                壊す;
        }
        // アニメーションを設定するには、左と上を設定する必要があります。配置を設定する必要があります styleImg.style.position = 'absolute'
        // ラベルの初期位置、つまりマウスの現在の位置を設定します。var x = getMousePosition(event).x;
        var y = getMousePosition(イベント).y;
        // styleImg の座標を設定します styleImg.style.top = y + "px";
        styleImg.style.left = x + "px";
        //現在のマウステールが有効な領域に testDiv をバインドします var testDiv = document.getElementById("main");
        // ページの body タグに新しいタグを追加します testDiv.appendChild(styleImg);
        // ドキュメント内の制限を超えるものは表示されないので、ページ上の div にバインドしてみてください // マウスの移動中に上下のスクロール バーがトリガーされないように、overflow を hide に設定します testDiv.style.overflow = 'hidden';
        //
    	var カウント = 0;
    	//setInterval() メソッドは、指定された期間 (ミリ秒単位) で関数を呼び出したり、式を計算したりします。var time = setInterval(function(){
        // 指定された期間内に生成された各ラベルの対応する透明度を変更するタイマーを設定します。count += 5;
            styleImg.style.opacity = (100-カウント)/100;
        }, 30)
        // setTimeout() メソッドは、指定されたミリ秒数後に関数を呼び出したり、式を計算したりするために使用されます。
        // 遅延タイマーを設定し、一定時間後に上記のタイマーをクリアして、作成されたラベルが変更されないようにします setTimeout(function(){
            // clearInterval() を使用して setInterval 関数の実行を停止します。clearInterval(time);
            // 作成されたタグを削除します testDiv.removeChild(styleImg);
        },250)
    }
    </スクリプト>
</本文>
</html>

追記: 上記のコードは、さまざまなドキュメントを参考にして自分で書いたものです。VC 用のブログを書いたわけではありません。

最後に、画像素材をお渡しします。上記のコードに簡単な変更を加えるだけで、他のスタイルの小さなしっぽを実現できます。

JavaScript でクールなマウス テール効果を実現する方法についての記事はこれで終わりです。JavaScript マウス テール効果に関する関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • マウスの尾行効果を実現する JavaScript
  • JSはマウスの動きの尾を実現します
  • ネイティブJSでマウススライドによる愛の拡散効果を実現
  • マウスで画像を動かすJavaScript
  • HTML+CSS+JS でキャンバスがマウスの小さな円に追従する特殊効果のソースコードを実現

<<:  MySQL のロックに関する問題

>>:  HTML における li タグの水平配置の例

推薦する

Tomcatc3p0 で jnid データ ソースを構成する 2 つの実装方法の分析

c3p0の使用c3p0jarパッケージをインポートする <!-- https://mvnrep...

ネイティブ JS オブジェクト指向タイピング ゲーム

この記事では、JSオブジェクト指向タイピングゲームの具体的なコードを参考までに紹介します。具体的な内...

Linux Tensorflow2.0のインストール問題を解決する

conda アップデート conda pip で tf-nightly-gpu-2.0-previ...

MYSQL 演算子の概要

目次1. 算術演算子2. 比較演算子3. 論理演算子4. ビット演算子5. 演算子の優先順位1. 算...

Linux 上で Docker コンテナを作成、一覧表示、削除する方法の概要

1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...

...

ウェブサイトを高速化する

パフォーマンスは本当に重要ですか?パフォーマンスは重要であり、誰もがそれを知っています。なぜ私たちは...

MySQL 5.7.20\5.7.21 無料インストール版のインストールと設定のチュートリアル

参考までに、mysql 5.7.20 / 5.7.21 をダウンロード、インストール、構成します。具...

vue3 でブロック崩しゲームを開発する方法をステップバイステップで教えます

序文vue3 を使った例をいくつか書いてみましたが、Vue3 のコンポジション API はよく設計さ...

Vue3.0プロジェクトの構築と利用プロセス

目次1. プロジェクト構築2: ディレクトリ構造3: コンポジションAPI 4: 基本的な使い方:最...

ウォーターフォールレイアウト+ダイナミックレンダリングの実装

目次典型的なウォーターフォールウェブサイトウォーターフォールフローレイアウトの原則一般的な考え方具体...

mysql ERROR 1045 (28000) 問題の解決方法

私はmysql ERROR 1045に遭遇し、この問題に長い時間を費やしました。私はそれを自分で書き...

CentOS サーバーに FFmpeg をインストールするための完全な手順

序文サーバーシステム環境は、CentOS 6.5 (最終) です。 FFmpeg をサーバーに正常に...

シンプルな画像切り替えを実現するJavaScript

この記事では、JavaScriptで簡単な画像切り替えを実現するための具体的なコードを参考までに紹介...

TypeScriptはvscodeを使用してコードのコンパイルプロセスを監視します

インストールtsコマンドをグローバルにインストールする npm install -g typescr...