jQuery chili圖片遠(yuǎn)處放大插件
為了讓本地圖片、遠(yuǎn)程圖片、過(guò)小的圖片都適應(yīng)此插件,有很多細(xì)節(jié)問(wèn)題要處理。
- 首先定義結(jié)構(gòu):
<div class="imgMagnifierWrap"> <div class="overlay"><!--覆蓋層,鼠標(biāo)的感應(yīng)區(qū)域,位于小圖上最方--></div> <div class="tipboxHover"><!--小圖上方的懸停提示方框--></div> <div class="imgOriginal"><!--裝載大圖的容器,絕對(duì)定位<img src="bigOne.jpg" /><!--前景大圖,絕對(duì)定位--></div> </div><!--樣式--> <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>- 然后考慮圖片預(yù)加載:
$.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; };- 再計(jì)算感應(yīng)區(qū)域:
- 小圖所處感應(yīng)區(qū)域四邊各減去指示方框各四邊的1/2大小的矩形,在此之外的區(qū)域則顯示到大圖邊界:
var borderLeft =thumbInfo.left+tipboxInfo.width/2; var ratioX=(mouseInfo.x-borderLeft)/(thumbInfo.width-tipboxInfo.width); - 用大圖用做背景圖片引發(fā)的問(wèn)題:
- 用隱藏的前景圖片預(yù)加載,load事件判斷時(shí)機(jī),ie,chrome正常,ff請(qǐng)求了兩次圖片,圖片未緩存;
- 換一種方式,不預(yù)載大圖。改成直接在大圖位置用覆蓋層做“l(fā)oading”后,chrome下表現(xiàn)為漸進(jìn)加載圖片,非chrome是直接顯示,略有遺憾。
- 最終結(jié)果,把大圖用做前景圖片:
- 優(yōu)勢(shì)在于,大圖的load和error事件都可以正常工作:
$.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!'); } });大圖預(yù)載的load事件和小圖mousemove事件不同步的解決辦法:實(shí)時(shí)存儲(chǔ)鼠標(biāo)坐標(biāo),把提示方框定位和大圖定位的方法分離。
//鼠標(biāo)位置存儲(chǔ) 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(); };
隨便一提,如果有一種瀏覽器,也許會(huì)很幸運(yùn)。
演示代碼
打包下載 http://www.dhdzp.com/jiaoben/22866.html
- 圖片放大鏡jquery.jqzoom.js使用實(shí)例附放大鏡圖標(biāo)
- 關(guān)于Jqzoom的使用心得 jquery放大鏡效果插件
- 用JQuery模仿淘寶的圖片放大鏡顯示效果
- 基于Jquery插件開(kāi)發(fā)之圖片放大鏡效果(仿淘寶)
- jquery圖片放大鏡功能的實(shí)例代碼
- 基于jquery的放大鏡效果
- Jquery實(shí)現(xiàn)圖片放大鏡效果的思路及代碼(自寫)
- 利用jQuery插件imgAreaSelect實(shí)現(xiàn)圖片上傳裁剪(放大縮?。?/a>
- jquery插件jquery.LightBox.js實(shí)現(xiàn)點(diǎn)擊放大圖片并左右點(diǎn)擊切換效果(附demo源碼下載)
- jQuery圖片特效插件Revealing實(shí)現(xiàn)拉伸放大
- jQuery插件zoom實(shí)現(xiàn)圖片全屏放大彈出層特效
- jquery插件珍藏(圖片局部放大/信息提示框)
- 來(lái)自國(guó)外的14個(gè)圖片放大編輯的jQuery插件整理
- 基于jQuery插件jqzoom實(shí)現(xiàn)的圖片放大鏡效果示例
相關(guān)文章
jquery中object對(duì)象循環(huán)遍歷的方法
這篇文章主要介紹了jquery中object對(duì)象循環(huán)遍歷的方法,感興趣的小伙伴們可以參考一下2015-12-12
收集的10個(gè)免費(fèi)的jQuery相冊(cè)
或許在網(wǎng)絡(luò)上你已經(jīng)見(jiàn)過(guò)數(shù)百種通過(guò)jQuery實(shí)現(xiàn)的相冊(cè),但是我們發(fā)現(xiàn)的這些相冊(cè),他們有額外的東西,優(yōu)雅和獨(dú)特的創(chuàng)意!每個(gè)相冊(cè)都是可在線預(yù)覽和免費(fèi)下載的。你可以為你的Web項(xiàng)目添加色彩。2011-02-02
分析了一下JQuery中的extend方法實(shí)現(xiàn)原理
這篇文章主要介紹了通過(guò)jQuery.extend的源碼分析了一下JQuery中的extend方法實(shí)現(xiàn)原理以及使用方式,非常的詳細(xì),這里推薦給大家,有需要的小伙伴來(lái)參考下吧。2015-02-02
jquery表單驗(yàn)證實(shí)例仿Toast提示效果
這篇文章主要介紹了jquery驗(yàn)證表單仿Toast提示效果,實(shí)現(xiàn)代碼簡(jiǎn)單易懂,非常不錯(cuò),需要的朋友可以參考下2017-03-03
jquery通過(guò)visible來(lái)判斷標(biāo)簽是否顯示或隱藏
這篇文章主要介紹了jquery如何判斷標(biāo)簽是否顯示或隱藏,使用到了visible屬性,大家可以學(xué)習(xí)下2014-05-05
jquery.uploadify插件在chrome瀏覽器頻繁崩潰解決方法
這篇文章主要介紹了jquery.uploadify插件在chrome瀏覽器頻繁崩潰解決方法,十分的實(shí)用,遇到相同問(wèn)題,需要解決的朋友可以參考下2015-03-03
jquery中checkbox使用方法簡(jiǎn)單實(shí)例演示
這篇文章主要介紹了jquery中checkbox使用方法簡(jiǎn)單實(shí)例演示,感興趣的小伙伴們可以參考一下2015-11-11
jquery實(shí)現(xiàn)通用的內(nèi)容漸顯Tab選項(xiàng)卡效果
這篇文章主要介紹了jquery實(shí)現(xiàn)通用的內(nèi)容漸顯Tab選項(xiàng)卡效果,涉及jquery通過(guò)時(shí)間函數(shù)定時(shí)觸發(fā)頁(yè)面元素樣式變換的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09

