jQueryチリ画像遠隔ズームplug-in_jquery
ローカル画像、リモート画像、および小さすぎる画像をこのプラグインに適合させるには、多くの詳細に対処する必要があります。
- 最初に構造を定義します。
-
1
2
3
4
5
6
7
<code
class
=
"html"
>
<div
class
=
"imgMagnifierWrap"
>
<div
class
=
"overlay"
><!--覆盖层,鼠标的感应区域,位于小图上最方--></div>
<div
class
=
"tipboxHover"
><!--小图上方的悬停提示方框--></div>
<div
class
=
"imgOriginal"
><!--装载大图的容器,绝对定位<img src=
"bigOne.jpg"
/><!--前景大图,绝对定位--></div>
</div>
</code>
ログイン後にコピー1
2
3
4
5
6
7
8
9
10
<code
class
=
"css"
>
<!--样式-->
<style type=
"text/css"
>
.imgMagnifierWrap *{position:absolute;background:#fff;}
.imgMagnifierWrap .tipboxHover{width:80px; height:60px; filter:alpha(opacity=30);opacity:.3;display:none;}
.imgMagnifierWrap .imgOriginal{display:none;z-index:9999;overflow:hidden; width:400px; height:400px;
background-color:#cdf; background-repeat:no-repeat; text-align:center;border:1px solid #555; }
.imgMagnifierWrap .overlay{cursor:crosshair;filter:alpha(opacity=0);opacity:0;}
<style>
</code>
ログイン後にコピー - 次に、画像のプリロードを検討します。
-
1
2
3
4
5
6
7
8
9
10
11
<code
class
=
"js"
>
$.imgPreloader=
function
(url,eventLists){
var
img=
new
Image();
var
$img
=$(img);
img.src=url;
$.each(eventLists,
function
(type,fn){
$img
.bind(type,fn);
});
$img
.trigger(img.complete?
'load'
:
'begin'
);
return
$img
;
};</code>
ログイン後にコピー - 感知エリアを再計算します:
- 小さい画像が配置されている検出領域の 4 辺から、インジケータ ボックスの 4 つの辺のそれぞれのサイズの 1/2 を引いた長方形の外側の領域が、大きな画像の境界に表示されます。 :
-
1
2
3
4
<code
class
=
"js"
>
var
borderLeft =thumbInfo.left+tipboxInfo.width/2;
var
ratioX=(mouseInfo.x-borderLeft)/(thumbInfo.width-tipboxInfo.width);
</code>
ログイン後にコピー - 大きな画像を背景画像として使用することによって発生する問題:
- 非表示の前景画像をプリロードに使用します。ロード イベントによってタイミングが決まります。つまり、クロムは正常です。FF は画像を 2 回要求しました。画像はキャッシュされません。
- もう 1 つの方法は、大きな画像をプリロードしないことです。大きな画像の位置にオーバーレイを直接「読み込む」に変更したところ、Chromeでは画像が徐々に読み込まれていくように見えますが、Chromeでは直接表示されるのが少し残念です。
- 大きな画像を前景画像として使用した最終結果:
- 利点は、大きなイメージのロード イベントとエラー イベントの両方が正常に動作できることです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<code
class
=
"js"
>
$.imgPreloader(
$anchor
.attr(
'href'
),{
load:
function
(){
isImageReady=true;
$o
.
empty
().append(this);
setTimeout(autoFitPicture,0);
},
begin:
function
(){
$o
.text(
'loading...'
);
},
error:
function
(){
isImageReady=true;
$o
.text(
'invalid picture!'
);
}
});</code>
ログイン後にコピー -
大きい画像のプリロードのロードイベントと小さい画像のmousemoveイベントの間の非同期の解決策: マウス座標をリアルタイムで保存し、プロンプトボックスの配置方法とプロンプトボックスの配置方法を分離します。大きな画像。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<code
class
=
"js"
>
//鼠标位置存储
var
mouseInfo={x:0,y:0};
//指示框定位
var
setTipboxPosition=
function
(e){
mouseInfo.x=e.pageX;
mouseInfo.y=e.pageY;
$tipbox
.css({
top:mouseInfo.y<thumbInfo.width/2+thumbInfo.top
?Math.max(mouseInfo.y-tipboxInfo.height/2,thumbInfo.top)
:Math.min(mouseInfo.y-tipboxInfo.height/2,thumbInfo.top+thumbInfo.height-tipboxInfo.height),
left:mouseInfo.x<thumbInfo.width/2+thumbInfo.left
?Math.max(mouseInfo.x-tipboxInfo.width/2,thumbInfo.left)
:Math.min(mouseInfo.x-tipboxInfo.width/2,thumbInfo.left+thumbInfo.width-tipboxInfo.width)
});
setImgPosition();
};</code>
ログイン後にコピー
ちょっと余談ですが、ブラウザをお持ちなら幸運かもしれません。
デモ コード
パッケージのダウンロード http://www.jb51.net/jiaoben/22866.html

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
