この記事の例では、虫眼鏡効果を実現するためのjsの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 スタイル表示:アイデアまず、小さい写真と大きい写真の2つの写真を用意します。2つの写真は整数比を持ちます。 小さな画像の上に虫眼鏡スタイルを設定し、背景を透明色に設定します 親要素を大きな画像の外側に配置し、親要素を超える場合は非表示にします。サイズは、拡大部分が収まる程度にしてください。親要素と虫眼鏡スタイルの比率 = 大きな画像と小さな画像の比率。 マウスが小さい画像上で移動すると、マウスの座標を取得し、小さい画像上でのマウスの座標を取得し、対応する比率に従って大きい画像の座標を計算し、拡大された部分が親要素の可視範囲内になるように大きい画像を移動します。 コード1.html部分 <div id="ボックス"> <!-- toBig は虫眼鏡要素です --> <div id="toBig"></div> <!-- 小さい画像 --> <img src="img/05.jpg" id="smallImg" width="800px"> </div> <div id="beBig"> <!-- 大きな画像、比率は 1.5 倍 --> <img src="img/05.jpg" id="bigImg" width="1200px"> </div> 2.cssスタイル部分 *{ マージン: 0px; パディング: 0px; } #箱{ 位置: 相対的; フロート: 左; } #toBig{ 幅: 80ピクセル; 高さ: 80px; 境界線: 1px の灰色 背景色: 透明; 位置: 絶対; } #大きくなろう{ フロート: 左; オーバーフロー: 非表示; 境界線: 1px の灰色 位置: 相対的; 左: 40px; 上:325ピクセル; } #bigImg{ 位置: 絶対; } 3. スクリプト部分 <script type="text/javascript"> // 小さい画像、大きい画像、虫眼鏡要素、大きい画像の親要素を取得します。var smallImg = document.querySelector("#smallImg"); var bigImg = document.querySelector("#bigImg"); var toBig=document.querySelector("#toBig"); var beBig=document.querySelector("#beBig"); /*ページが読み込まれたときに小さい画像と大きい画像の比率を計算します*/ var q = 0; window.onload = 関数(){ q=bigImg.offsetWidth/smallImg.offsetWidth; // 虫眼鏡の幅、高さ、比率に基づいて、表示される拡大コンテンツのサイズを計算します。beBig.style.width = toBig.clientWidth * q + "px"; beBig.style.height = toBig.clientHeight * q + "px"; } // 虫眼鏡要素の中心を取得し、マウスが虫眼鏡の中心にあることを確認します var xCenter=toBig.clientWidth/2; var yCenter=toBig.clientHeight/2; // フラグは記号です。マウスが押されると true になり、移動できます。flag=false; toBig.onmousedown = 関数(){ フラグ=true; } toBig.onmouseup = 関数(){ フラグ=false; } window.onmousemove=関数(ev){ var ev = ev || window.event; //フラグがtrueの場合、虫眼鏡要素は押されてドラッグできます if (flag) { //マウスの現在の位置を取得し、要素自体に加えて移動する位置を計算します var mouseX=ev.clientX,mouseY=ev.clientY; var trueX = mouseX-xCenter; //虫眼鏡要素が小さい画像の範囲を超えているかどうかを判断します。if (trueX < smallImg.offsetLeft) { trueX = smallImg.offsetLeft; } trueX > smallImg.clientWidth - toBig.offsetWidth の場合{ trueX = smallImg.clientWidth - toBig.offsetWidth; } var trueY=mouseY - yCenter; trueY <= smallImg.offsetTopの場合{ trueY = 小さい画像の上端オフセット; } trueY が smallImg.clientHeight - toBig.offsetHeight の場合 { trueY = smallImg.clientHeight - toBig.offsetHeight; } // 小さい画像が移動するBig.style.left = trueX + "px"; toBig.style.top = trueY + "px"; コンソールにログ出力します。 // 大きな画像を移動する位置 bigImg.style.left =-(trueX * q) + "px"; bigImg.style.top = -(trueY * q) + "px"; } } </スクリプト> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: マークアップ言語 - Web アプリケーション CSS スタイル
>>: Docker デプロイメント RabbitMQ コンテナ実装プロセス分析
IE8 の新機能 Web スライス (Web スライス) Microsoft は 3 月 20 日...
注: 私はCentosを使ってdockerをインストールしていますステップ1: Dockerをインス...
Ubuntu に jdk をインストールする: [リンク] UbuntuにEclipseをインストー...
インデックスにクエリする必要があるすべてのフィールドの値が含まれている(またはカバーしている)場合、...
この記事では、例を使用して、MySQL ストアド プロシージャにおけるカーソル (DECLARE) ...
<br />昨日、W3C で新しいHTML 5 ドラフト (ワーキング ドラフト) が ...
1. まず、CSS3 のターゲット セレクターを使用し、a タグを使用して id セレクターを指定し...
説明: テキストエリアの値の改行を新しい行に変更しますコードをコピーコードは次のとおりです。 <...
ミニプログラムはユーザーの個人情報を収集してアップロードしましたが、拒否されました。こんにちは、ミニ...
Dockerはmysqlをインストールします docker search mysql 検索 dock...
目次序文Vue Nativeの機能宣言的レンダリング双方向バインディングVue.js エコシステムの...
最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...
コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...
開発者が Dockerfile を使用してイメージをビルドする場合は、イメージをビルドするときにデー...
1. 事業背景マスク レイヤーを使用してユーザーの異常な操作を遮断する方法は、フロントエンドでよく使...