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

推薦する

goaccess を使用して nginx ログを分析する詳細な方法

最近、goaccess を使って nginx ログを分析したいのですが、nginx ログの設定形式が...

位置のいくつかの巧妙な応用の詳細な説明:sticky スティッキーポジショニング

背景: position:sticky はスティッキー配置とも呼ばれます。スティッキー配置の要素は、...

React Native環境のインストールプロセス

react-native インストールプロセス1.npx react-native init Awe...

タブ切り替え効果を実現するJavaScript

この記事では、タブ切り替え効果を実現するためのJavaScriptの具体的なコードを参考までに紹介し...

React Nativeがシミュレータにリンクできない件について

React Native は、現在人気のオープンソース JavaScript ライブラリ React...

Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法

Grafana をインストールします。公式 Web サイトでは、直接インストールできる Ubuntu...

MYSQL 演算子の概要

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

Ubuntu 20.04 に cuda10.1 をインストールする手順 (グラフィック チュートリアル)

インストール前の準備CUDA の主な目的はディープラーニングであり、現在主流のディープラーニングフレ...

反応ジャンプ後にルートが変更されてもページが更新されない場合の解決策

目次質問解決質問この問題には多くの理由があるようです。私の問題は、パラメータ付きのURLを更新できな...

VMware15.5でcentos8.1をインストールし、物理メモリが不足する問題に対処する最も完全なチュートリアル

1. 仮想マシンの準備1. 新しい仮想マシンを作成する 2. 仮想マシンのカスタマイズを選択する 3...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

WeChatアプレットはユーザーログインモジュールサーバーの構築を実装します

サーバーの構築には node.js を選択しました。まだインストールしていない方は、私の他の nod...

flex-grow、flex-shrink、flex-basis、9グリッドレイアウトを理解する

1. flex-grow、flex-shrink、flex-basis プロパティflex-grow...

HTML の隠しフィールドの紹介と例

基本的な構文: <input type="hidden" name=&qu...

MySQL グローバルロックとテーブルレベルロックの具体的な使用法

目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...