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 タグの水平配置の例

推薦する

クラウドネイティブテクノロジーKubernetesスケジューリングユニットポッドの使用の詳細な説明

k8s の最小のスケジューリング単位 --- pod前回の記事では、k8s が解決できる問題を簡単に...

MySQLでSELECT文が実行される仕組み

目次1. マクロの観点からMySQLを分析する2. SQL ステートメントを実行するには、どの程度の...

Harborを使用してプライベートDockerリポジトリを構築する方法

目次1. オープンソースの倉庫管理ツール Harbor 2 インストール2.1 DockerとDoc...

MySQL サービス 1067 エラーの解決策: mysql 実行可能ファイルのパスを変更する

今日、MySQLサービス1067エラー問題に遭遇しました。システムアカウントを使用するように設定して...

IE8 ベータ 1 には注意が必要な 2 つの領域があります

<br />関連記事: Web スキル: 複数の IE バージョンを共存させるソリューシ...

MySQL フルテキスト インデックス、ジョイント インデックス、Like クエリ、JSON クエリのうち、どれが高速ですか?

目次クエリの背景1. クエリをいいね2. JSON関数クエリ3. 共同インデックスクエリ4. 全文イ...

CSS で平均レイアウトを実現するために負のマージンを使用する例

均等に分散されたレイアウトの場合、通常はネガティブ マージン方式を使用します。次の図は平均的なレイア...

Linuxはlsofコマンドを使用してファイルのオープンステータスを確認します

序文Linux では「すべてがファイル」であることは誰もが知っているので、ファイルのオープン状態を確...

Docker は次の「Linux」になれるか?

Linux オペレーティング システムは過去 20 年間にわたってデータ センターに革命をもたらし...

MySQL Truncate の使用方法の詳細な説明

目次MySQL 切り捨ての使用1. 構文を切り捨てる2. Truncateの使用上の注意3. TRU...

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

Dockerを使用してMySQLデータベースをインストールするDeepinの詳細な説明

まずMySQLソースをクエリするdocker 検索 mysql公式ウェブサイトにアクセスしてイメージ...

vmware workstation12 インストール CentOS プロンプト VMware Player と Device/Credential Guard に互換性がない、理由と解決策

最新バージョンの WIN10 では、Microsoft は仮想化コンテナに基づくセキュリティ メカニ...

国内SNSのホームページを比較・分析して得た経験をみんなで共有(写真)

この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...

Ubuntu仮想マシンでシリアル通信にcutecomを使用する方法

Ubuntu仮想マシンでのシリアル通信にcutecomを使用する1. cutecomをインストールす...