1 $('.imgUl li,.v_img').click(function(){ 2 var _left = 0; 3 var _top = 0; 4 $('body').append('<div class="pop"><div class="pop_con"><a href="javascript:;" class="img_close"><img src="images/img_close.png"></a><img src="'+$(this).children('.pic-off').attr('rel')+'" class="pic_b"/></div></div>'); 5 var newImg = new Image(); 6 newImg.onload = function(){ 7 _h = newImg.height; 8 _w = newImg.width; 9 $('.opacityDiv').show(); 10 _left = '-'+parseInt(_w)/2+'px'; 11 _top = '-'+parseInt(_h)/2+'px'; 12 $('.pop').css({'margin-left':'-'+parseInt(_w)/2+'px','margin-top':_top}); 13 $('.img_close').click(function(){ 14 $('.opacityDiv').hide(); 15 $('.pop').remove(); 16 }); 17 } 18 newImg.src = $(this).children('.pic-off').attr('rel'); 19 });
注:图片在缓存加载时获取的宽度和高度都为0,所以newImg.onload方法可以将图片加载完成后再获取本身的宽高。此时获取的值均为正确的值。