JavaScript が Taobao の虫眼鏡効果を模倣

JavaScript が Taobao の虫眼鏡効果を模倣

この記事では、淘宝虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

HTMLコード

 <div class="サムネイル">
        <img src="./img/12-1Z930152149 (2).jpg" alt="">
        <div class="拡大鏡"></div>
    </div>
    <div class="オリジナル">
        <img src="./img/12-1Z930152149 (2).jpg" alt="">
    </div>
<script src="./index.js"></script>

CSSコード

*{
            マージン: 0;
            パディング: 0;
        }
        .サムネイル、.オリジナル{
            幅: 400ピクセル;
            高さ: 400px;
            境界線: 1px 実線の赤;
            位置: 絶対;
        }
        。オリジナル{
            左: 450ピクセル;
            オーバーフロー: 非表示;
            表示: なし;
        }
        .サムネイル>画像{
            幅: 400ピクセル;
        }
        .オリジナル>画像{
            幅: 800ピクセル;
            位置: 絶対;
        }
        .拡大鏡{
            カーソル: 移動;
            幅: 200ピクセル;
            高さ: 200px;
            背景色:rgba(206, 198, 198, 0.5);
            位置: 絶対;
            上: 0;
            左: 0;
            表示: なし;
            
        }

jsコード

// サムネイル サムネイル // オリジナル オリジナル画像 // 拡大鏡 拡大鏡 $(".thumbnail").mouseover(function(){
    $(".拡大鏡").表示()
    $(".オリジナル").表示()
})
$(".thumbnail").mousemove(function(ev){
    // コンソール.log(ev)
    // ページに対するマウスの xy 座標 var mx = ev.pageX;
    var my =ev.pageY;
    
    var tx = mx - $(".thumbnail").offset().left
    var ty = my - $(".thumbnail").offset().top


    var l = tx -$(".magnifier").width()/2;
    var t = ty -$(".magnifier").height()/2;

    var maxX = $(".thumbnail").width() - $(".magnifier").width();
    var maxY = $(".thumbnail").height() - $(".magnifier").height()

    // 境界処理 if( l >maxX){
        l = 最大X
    }
    if(t >maxY){
        t = 最大Y
    }
    もし(l <0){
        0 = 0 です
    }
    t<0の場合{
        t=0
    }

    //虫眼鏡の位置 $(".magnifier").css({
        左: l +"px",
        上: t + "px"
    })

    //元の画像の場所$(".original >img").css({
        左:-l*2 +"px",
        上:-t*2 +"px"
    })
})
// マウスが元の画像から離れると虫眼鏡を非表示にします$(".thumbnail").mouseout(function(){
    $(".拡大鏡").非表示();
    $(".オリジナル").hide();

})

効果:

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

以下もご興味があるかもしれません:
  • Javascript サンプル プロジェクトでの虫眼鏡効果の実装プロセス
  • JavaScript で虫眼鏡の特殊効果を実現
  • JavaScript が Jingdong の虫眼鏡の特殊効果を模倣
  • 虫眼鏡ケースのJavaScriptオブジェクト指向実装
  • JavaScript が Jingdong の虫眼鏡効果を模倣
  • 虫眼鏡効果を実現するJavaScript
  • js で虫眼鏡効果を実現するためのアイデアとコード
  • 虫眼鏡の詳細のJavaScript実装

<<:  CSSを使用して中央に固定された2つの列と適応型列を実現する方法

>>:  Docker Machineの詳細な説明

推薦する

選択/フォーカス時にすべてのオプションをリストする現在のより良い方法

開発中にこのような要件に遭遇したので、将来使用するために記録しました。需要背景キーボード ショートカ...

メタタグのビューポートはデバイス画面のCSSを制御します

コードをコピーコードは次のとおりです。 <meta name="viewport&q...

HTML テーブル マークアップ チュートリアル (38): ヘッダーの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、ヘッダーに異なる境界線の色を設定できます。基本的な構文<TH 境界...

mysqlは内部コマンドエラーの解決策ではありません

「mysqlは内部コマンドではありません」というエラーは、mysqlのbinディレクトリパスが環境変...

Docker に MySQL と Redis をインストールする方法

この記事はCentOS 7.3システム環境をベースに、MySQLとRedisのインストールと使用につ...

JavaScriptの無限ループを検出して防止する方法の詳細な説明

目次序文for文の無限ループを修正while文の無限ループを修正要約する序文Js デッド ループはど...

docker ログが取得できない問題の解決方法

毎日サービスをチェックしているときに、portainer からコンテナ ログを確認しようとしたところ...

Struts2 ジャンプ後に CSS と JS が無効になる問題の解決策のアイデアと実装手順

struts2 アクションの実行後にジャンプした jsp が表示されると、css が機能しません。問...

純粋な CSS でフォ​​ーム検証を実装するためのサンプル コード

日常業務において、フォームの検証は非常に一般的な設計要件です。ログイン ボックスや登録ボックス、アン...

VMware ESXi 5.5 の展開および構成図のプロセス

目次1. インストール要件2. OSイメージのダウンロード3. VMware Workstation...

Vue 折りたたみ表示の複数行テキスト コンポーネントの実装コード

折りたたみ表示の複数行テキストコンポーネント複数行のテキスト コンポーネントを折りたたんで表示し、展...

js を使用して過去 1 週間、1 か月、3 か月の時間を取得する簡単な例

目次過去1週間の時間を取得する過去1か月の時間を取得する過去3か月分を取得新しい Date() と ...

HTMLフォームタグチュートリアル(1):

フォームは、動的な Web ページを実装するための主要な外部フォームです。フォームとフォーム フィー...

Reactドラッグフックを実装するための100行以上のコード

序文ソースコードは合計で 100 行強しかありません。これを読めば、react-dnd などの成熟し...

Docker Alibaba Cloud RocketMQ 4.5.1 のデプロイプロセスの詳細な説明

検索ミラー docker 検索 rocketmq画像バージョンを表示他の画像を表示したい場合は、画像...