この記事では、Jingdongの詳細ページの画像の拡大を実現するためのjsの具体的なコードを紹介します。具体的な内容は次のとおりです。 効果: html: <div class="preview_img"> <img src="upload/s3.png" alt=""> <div class="mask"></div> <div class="big"> <img src="upload/big.jpg" alt="" class="bigImg"> </div> </div> css: .preview_img { 位置: 相対的; 高さ: 398ピクセル; 境界線: 1px 実線 #ccc; } 。マスク { 表示: なし; 位置: 絶対; 幅: 300ピクセル; 高さ: 300px; 上: 0; 左: 0; 背景: #FEFE4F; 不透明度: .5; 境界線: 1px 実線 #ccc; カーソル: 移動; } 。大きい { 表示: なし; 位置: 絶対; 幅: 550ピクセル; 高さ: 550px; 上: 0; 左: 410px; zインデックス: 999; 境界線: 1px 実線 #ccc; オーバーフロー: 非表示; } .bigimg{ 位置: 絶対; 左: 0; 上: 0; } js (強調): window.addEventListener('load',function(){ var preview_img = document.querySelector('.preview_img'); var マスク = this.document.querySelector('.mask'); var big = this.document.querySelector('.big'); var bigImg = this.document.querySelector('.bigImg'); //マウスオーバー preview_img.addEventListener('mouseover',function(){ mask.style.display = 'ブロック'; big.style.display = 'ブロック'; }) //マウスアウト preview_img.addEventListener('mouseout',function(){ マスクスタイル表示 = 'なし'; big.style.display = 'なし'; }) //マウスが動くと preview_img.addEventListener('mousemove',function(e){ //ボックス内のマウスの座標 var x = e.pageX - this.offsetLeft; var y = e.pageY - this.offsetTop; // オクルージョン レイヤーが移動する距離 var maskX = x - mask.offsetWidth/2; var maskY = y -mask.offsetHeight/2; // 大きな画像の移動距離 // オクルージョン レイヤーの最大移動距離 var maskMaxX = preview_img.offsetWidth - mask.offsetWidth; var maskMaxY = preview_img.offsetHeight - mask.offsetHeight; //X座標が0未満の場合は0のままにします if (maskX <= 0) { マスクX = 0; }それ以外の場合 (maskX >= maskMaxX) { マスクX = マスクMaxX; } //Y座標が0未満の場合は0のままにします if (maskY <= 0) { マスクY = 0; }それ以外の場合 (maskY >= maskMaxY) { マスクY = マスクMaxY; } //オクルージョン レイヤーの移動 mask.style.left = maskX + 'px'; mask.style.top = maskY + 'px'; // 大きな画像の最大移動距離 var bigMaxX = bigImg.offsetWidth - big.offsetWidth; var bigMaxY = bigImg.offsetHeight - big.offsetHeight; //大きな画像の移動距離XY // 大きな画像の移動距離 = オクルージョン レイヤーの移動距離 * 大きな画像の最大移動距離 / オクルージョン レイヤーの最大移動距離 var bigX = maskX * bigMaxX / maskMaxX; var bigY = maskY * bigMaxY / maskMaxY; // 大きな画像と小さな画像 (マウスの動き) は反対方向です。bigImg.style.left = -bigX + 'px'; bigImg.style.top = -bigY + 'px'; }) }) 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: CSS で順序付きリスト項目と順序なしリスト項目のスタイルを設定する方法
1.1 ディレクトリ構造の構築この操作は、nginx+mysql+tomcat+dbのディレクトリ構...
この記事では、次のように、誰にでも共有できる左右幅固定のミドルアダプティブ HTML レイアウトソリ...
今日は618日、主要なショッピングモールはすべてプロモーション活動を行っています。今日は、次のように...
目次リアクティブ機能使用法: toRef 関数 (理解するだけ)使用法: ref関数レスポンシブデー...
目次1. はじめに1.1 原則1.2 プロセス1.3 特徴1.4 githubアドレス2. テスト環...
1 問題の説明Vue3 の統合 API は、defineComponent やその他の関数が認識でき...
この記事では、Windows 10環境でのMySQL 5.5のインストールと使用方法を紹介します。リ...
目次マインドマップとは何ですか? F6で描く方法アリペイ微信要約するマインドマップとは何ですか?マイ...
body{font-size:12px; font-family:"宋体";}...
1. ビッグデータとHadoopビッグデータについて研究し学ぶには、当然 Hadoop から始める必...
目次起源現状リクエストをキャンセル cancelTokenリクエスト方法の変更重複したリクエストを避...
目次1. JavaScript オブジェクト1).配列オブジェクト2).ブールオブジェクト3).日付...
MySQL公式サイトのzipファイルのダウンロードリンク https://dev.mysql.co...
構文フォーマット: row_number() over(partition by grouping ...
序文以前の非MKレコードを再編成するためのMySQLの学習説明する有効になっていない場合、データベー...