検索
ホームページウェブフロントエンドhtmlチュートリアルネイティブ JavaScript を使用して虫眼鏡効果を実現する方法_html/css_WEB-ITnose

テクノロジーの発展に伴い、オンライン ショッピングはあらゆる人の生活に欠かせないモードとなり、さまざまな e コマース プラットフォームが登場しました。今日では、淘宝網で買い物をするときに同様のプロセスを実装します。

ここでは、 サイズの 2 つの写真を使用する必要があります 800x800 と 350x350 の 2 つの写真を選択しました

最初に HTML と CSS スタイルを書き出します

html の部分

  <body>        <div class="min">            <img  src="/static/imghwm/default1.png"  data-src="img/1.jpg"  class="lazy" / alt="ネイティブ JavaScript を使用して虫眼鏡効果を実現する方法_html/css_WEB-ITnose" >            <div class="fd"></div>        </div>        <div class="max"><img  src="/static/imghwm/default1.png"  data-src="img/2.jpg"  class="lazy" / alt="ネイティブ JavaScript を使用して虫眼鏡効果を実現する方法_html/css_WEB-ITnose" ></div>    </body>

原理は、minとmaxの2つの領域を作成し、minに小さい画像img/1.jpgと作成した虫眼鏡divfdを入れ、maxに大きい画像img/2.jpgを入れるというものです

CSSスタイル部分

        <style type="text/css">            .min{                width: 350px;                height: 350px;                border: 1px solid black;                float: left;                position: relative;            }            .max{                width: 350px;                height: 350px;                border: 1px solid black;                float: left;                display: none;                overflow: hidden;                position: relative;            }            .max img{                position: absolute;                margin: 0 auto;            }            .fd{                width: 153.125px;                height: 153.125px;                background-color: skyblue;                    opacity: 0.3;                position: absolute;                top: 0;                left: 0;                display: none;                }

ここで強調する必要があるのは 2. 虫眼鏡の幅と高さは、私が選択したサイズに応じて

153.125px
でなければならず、それ以外の場合は左側の選択した領域です。右側の表示領域は完全に一致できません。 3. 大きな画像の親の最大値で定義されたフレーム サイズが内部の画像よりも小さいのはなぜですか (ここでのフレームはウィンドウに相当し、画像は内側のオブジェクトはウィンドウの片側のオブジェクトに相当します。内側のオブジェクトがどんなに大きくても、ウィンドウのサイズしか表示できません。 4. マウスを小さな画像領域の外側に置くと、大きな画像と虫眼鏡は表示されないので、max と fd で display:none の設定を開始します

効果を表示するには、まず、display:none を出力します。効果は次のとおりです

スタイル図

jsパート

まず論理シーケンスを分析します

1. マウスオーバーレイにmaxとfd2が表示されます。虫眼鏡の移動範囲を決定します(minを超えることはできません) 3. 対応するmaxの表示を順番に記述します

変数

<script type="text/javascript">        var min = document.querySelector(".min"),        max = document.querySelector(".max"),        img = document.querySelector(".max img"),        fd = document.querySelector(".fd");
を定義し、
    min.onmouseover = function(){        //1.鼠标覆盖显示max和fd        max.style.display = "block";        fd.style.display = "block";    }        //离开时隐藏        min.onmouseout= function(){        max.style.display = "none";        fd.style.display = "none";        }        //2.fd的移动范围        min.onmousemove = function(){            //鼠标触摸的点            var x = event.clientX-min.offsetLeft-fd.offsetWidth/2;            var y = event.clientY-min.offsetTop-fd.offsetHeight/2;            //最大移动距离            var maxX = min.clientWidth-fd.offsetWidth;            var maxY = min.clientHeight-fd.offsetHeight;            //边界判断            if(x<=0){                x=0;            }else if(x>=maxX){                x=maxX;            }            if(y<=0){                y=0;            }else if(y>=maxY){                y=maxY;            }            //fd的位置            fd.style.left = x+"px";            fd.style.top = y+"px";            //fd/min = max/img            //移动比例            var yidongX = x/maxX;            var yidongY = y/maxY;            //移动            //3.max的对应显示            // 对于大图而言 放大镜在小图上移动的比例 相当于img在可显示区域上移动的比例  放大镜右移等于图片左移            // 也就是本质上为img - max 然而需要负值 则*-1 简化后 为max-img            img.style.left = yidongX * (max.clientWidth - img.offsetWidth) + "px";            img.style.top = yidongY * (max.clientHeight - img.offsetHeight) + "px";    }</script>
を操作します

最後に、次の効果を達成するために必要に応じて改良します

1.gif

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTML、CSS、およびJavaScriptの役割:コアの責任HTML、CSS、およびJavaScriptの役割:コアの責任Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLは初心者のために簡単に学ぶことができますか?HTMLは初心者のために簡単に学ぶことができますか?Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTMLでの開始タグの例は何ですか?HTMLでの開始タグの例は何ですか?Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

CSSのフレックスボックスレイアウトを使用して、メニューの点線のラインセグメンテーション効果のセンターアラインメントを実現する方法は?CSSのフレックスボックスレイアウトを使用して、メニューの点線のラインセグメンテーション効果のセンターアラインメントを実現する方法は?Apr 05, 2025 pm 01:24 PM

メニューで点線のラインセグメンテーション効果を設計する方法は?メニューを設計するときは、通常、皿の名前と価格の間に左右に合わせることは難しくありませんが、真ん中の点線またはポイントはどうですか...

オンラインコードエディターはコード入力を実装するためにどのようなHTML要素を使用していますか?オンラインコードエディターはコード入力を実装するためにどのようなHTML要素を使用していますか?Apr 05, 2025 pm 01:21 PM

WebコードエディターのHTML要素分析では、多くのオンラインコードエディターを使用すると、ユーザーはHTML、CSS、およびJavaScriptコードを入力できます。最近、誰かが提案した...

React static Page構成:React-AppReviredを使用したコード圧縮を避ける方法は?React static Page構成:React-AppReviredを使用したコード圧縮を避ける方法は?Apr 05, 2025 pm 01:18 PM

React-App-Recrowiredを使用して静的ページを構築するときにコード圧縮を回避する方法について多くの開発者が配信したい...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい