HTML+CSS+JavaScriptにより、マウスの動きに合わせて選択したエフェクトの表示を実現します。

HTML+CSS+JavaScriptにより、マウスの動きに合わせて選択したエフェクトの表示を実現します。

1. 表示効果:

2、HTML構造

<div class="プロセスリスト-lpu">
                <div class="process_line"></div>
                <div class="content_list">
                    <ul>
                        <li><a href="javascipt:;">エンド カスタマーが製品を入手<b>1</b></a> </li>
                        <li><a href="javascipt:;">EFOSE Web サイトにログインし、インストールまたはメンテナンスの要件を提示します <b>2</b></a></li>
                        <li><a href="javascipt:;">EFOSE 優先連絡先サービス ポイント<b>3</b></a> </li>
                        <li style="margin-left:115px;"><a href="javascipt:;">サービスを受けるための顧客連絡先サービスポイント<b>4</b></a> </li>
                        <li><a href="javascipt:;">顧客が直接請求書を支払うか、EFOSE がメンテナンス費用を支払います<b>5</b></a> </li>
                    </ul>
                    <div class="clear"></div>
                </div>
            
            </div>

3. 主なCSSスタイル

.line-lpu{ 高さ:55px; 位置:相対; 幅:100%; オーバーフロー:非表示;}
    .line-lpu span{ 幅:43px; 高さ:46px; 背景:url('https://www.efose.com/images/banners/lpu_03.png') 繰り返しなし; 位置:絶対;上部:0;}
    .border-lpu{border-bottom:1px solid #959595; height:23px; }
     .join-lpu li{ 幅:19%; フロート:左; マージン右:8px; 背景:なし; パディング:0; }
    .join-lpu li a{ display:block; color:#606060; text-decoration:none; border:1px solid #959595; min-height:215px; padding:10px;position:relative; overflow:hidden;} 
    .join-lpu li a:hover{border:1px solid #337ab7;}
    .join-lpu li b{ フォントサイズ:60px; 位置:絶対; 下:7px; 右:-1px; フォントスタイル:斜体; 色:#c7c7c7;}
    .clear{clear:both;}
    .step-lpu span{ background:url('https://www.efose.com/images/banners/icon-lpu.png') 繰り返しなし; 表示:ブロック; 幅:75px; 高さ:65px; 左余白:28px;}
    .step-lpu .icon0{ 背景位置:0 0;}
    .step-lpu .icon1{ 背景位置:0 -70px;}
    .step-lpu .icon2{ 背景位置:0 -140px;}
    .step-lpu .icon3{ 背景位置:0 -204px; 高さ:58px; 下部余白:7px;}
    .step-lpu .icon4{ 背景位置:0 -260px;}

4. JavaScript の記述

<script type="text/javascript">
        //animationHoverオブジェクトをインスタンス化します。window.onload = function(){
            var ah = 新しい animationHover();  
            ああ、init();
        }; 
        //ラベルオブジェクトを初期化する function animationHover(){
            this.step = document.getElementById('step');
            this.stepLi = this.step.getElementsByTagName('li');
            行をドキュメントに追加します。
            this.attr = null;
            this.timer = null;
            this.target = null;
                            
            }
        //イベントを初期化する animationHover.prototype.init=function(){
            これ = これ;
            for(var i=0;i<this.stepLi.length;i++){
                this.stepLi[i].index=i;
                //イベントをliタグにバインドします this.stepLi[i].onmouseover=function(e){    
                    var myIndex=this.index;
                    This.onOver(This.line,(myIndex*162+55));
                    };
                this.stepLi[i].onmouseout=関数(){            
                   This.line.style.left=myIndex*162+55+'px';
                    };    
                
                }
            };
        //マウス処理関数を定義する animationHover.prototype.onOver=function(obj,target){
            これ=これ;
            タイマー間隔をクリアします。
            this.target=ターゲット;
            タイマー = setInterval(関数(){
                var target=This.target; // ターゲット ポイントを停止します var attrValue=parseInt(This.getStyle(obj,'left')); 
                var dx=target-attrValue; //ターゲットポイントからの「距離」
                var 速度 = 1/10 * dx;
                速度=速度>0?Math.ceil(速度):Math.floor(速度); 
                            // 丸めによるジッターを防ぐ if(target==attrValue) clearInterval(timer); 
                            //目標地点に到達したらタイマーをオフにし、そうでなければ{
                    obj.style.left=attrValue+speed+'px';
                }
                },100);
                                    
            };
        //現在のタグオブジェクトの CSS 属性値を取得します。animationHover.prototype.getStyle = function (obj, attr) {                    
            (obj.currentStyle)の場合{                
                obj.currentStyle[attr]を返します。
            }それ以外{
                getComputedStyle(obj,false)[attr]を返します。
            }
            };    
</スクリプト>

要約する

上記は、マウスの動きに追従する選択効果を実現するために私が紹介した html+css+javascript です。お役に立てれば幸いです。ご質問があれば、メッセージを残してください。すぐに返信いたします。

<<:  ウェブフロントエンドに対する一般的な攻撃とその防止方法

>>:  jsイベント委譲の詳細な説明

推薦する

Linux 7.6 バイナリに MySQL 8.0.27 をインストールする詳細な手順

目次1. 環境整備1.1 オペレーティング システムのバージョン1.2 ディスク容量1.3 ファイア...

MySQL Null は 5 つの問題を引き起こす可能性があります (すべて致命的)

目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...

CSS3 を使用したテキスト折り紙効果のサンプルコード

序文この記事では主に、CSS3 を使用してテキスト折り紙効果を実現する例を紹介します。これは、参考と...

MySQL 5.6 の「暗黙的な変換」によりインデックスが失敗し、データが不正確になる

背景SQL クエリを実行するときに、where 条件の vachar 型フィールドの単一引用符を削除...

CentOS 7にMySQLをインストールする詳細な手順

CentOS7では、MySQLをインストールすると、MariaDBもデフォルトでインストールされます...

JSはリクエストディスパッチャーを実装する

目次抽象化と再利用シリアルセグメントシリアル、セグメントパラレル要約するはじめに: JS は当然並列...

Mysql は非集計列を選択できません

1. はじめに最近ブログをアップグレードし、記事ページの下部に前の記事と次の記事に直接ジャンプできる...

ウェブページ読み込み時に左右にジャンプする原因の分析と解決

最近、ウェブサイトを設計するときにこの問題に遭遇しています。メンバーセンターを設計し、コンテンツを ...

Linux システムに Zookeeper サービスをインストールする方法

1. /usr/local/services/zookeeper フォルダを作成します。 mkdir...

MySQLはストアドプロシージャを使用して数百万のデータを素早く追加します。サンプルコード

序文インデックスを追加した場合と追加しなかった場合の違いを反映するには、数百万のデータを使用する必要...

MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明

今日もまた罠に落ちてしまいました。 私は以前MySQLの主キーオーバーフローに遭遇したことがあり、そ...

MySQL 8.0.12 の詳細なインストールおよびアンインストール チュートリアル

1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...

背景とリンクとして画像を書き込む方法(背景画像+リンク)

写真を背景にしてリンクを記載します。たとえば、ウェブサイトのロゴ画像などです。例: ポテトのロゴ画像...

vue-cli4.5.xはプロジェクトを素早く構築します

1. vue-cliをインストールする vue.js で vue.js を実行します。 2. プロジ...

mysql 8.0.19 win10 クイックインストールチュートリアル

このチュートリアルでは、参考までにMySQL 8.0.19のインストールチュートリアルを共有します。...