最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery chili圖片遠處放大插件

 更新時間:2009年11月30日 21:59:42   作者:  
為了讓本地圖片、遠程圖片、過小的圖片都適應(yīng)此插件,有很多細節(jié)問題要處理。

為了讓本地圖片、遠程圖片、過小的圖片都適應(yīng)此插件,有很多細節(jié)問題要處理。

首先定義結(jié)構(gòu):
 
<div class="imgMagnifierWrap"> 
<div class="overlay"><!--覆蓋層,鼠標的感應(yīng)區(qū)域,位于小圖上最方--></div> 
<div class="tipboxHover"><!--小圖上方的懸停提示方框--></div> 
<div class="imgOriginal"><!--裝載大圖的容器,絕對定位<img src="bigOne.jpg" /><!--前景大圖,絕對定位--></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; 
}; 
再計算感應(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ā)的問題:
用隱藏的前景圖片預(yù)加載,load事件判斷時機,ie,chrome正常,ff請求了兩次圖片,圖片未緩存;
換一種方式,不預(yù)載大圖。改成直接在大圖位置用覆蓋層做“l(fā)oading”后,chrome下表現(xiàn)為漸進加載圖片,非chrome是直接顯示,略有遺憾。
最終結(jié)果,把大圖用做前景圖片:
優(yōu)勢在于,大圖的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事件不同步的解決辦法:實時存儲鼠標坐標,把提示方框定位和大圖定位的方法分離。

 
  //鼠標位置存儲 
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(); 
}; 

隨便一提,如果有一種瀏覽器,也許會很幸運。
演示代碼
打包下載 http://m.fzitv.net/jiaoben/22866.html

相關(guān)文章

最新評論

肃北| 繁峙县| 黄浦区| 望都县| 米泉市| 高阳县| 海口市| 大洼县| 建水县| 项城市| 定陶县| 汕尾市| 泾阳县| 七台河市| 丰宁| 棋牌| 宜君县| 静乐县| 新疆| 广饶县| 西藏| 保山市| 保靖县| 鸡西市| 安溪县| 大余县| 陇西县| 灌云县| 克山县| 延吉市| 庆阳市| 晋城| 岳普湖县| 和平区| 平远县| 韩城市| 正阳县| 安康市| 玛纳斯县| 岐山县| 民县|