惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Y
Y Combinator Blog
月光博客
月光博客
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
The Cloudflare Blog

博客园 - 痞子刘

20款实用经典的Chrome插件推荐,不过要自己到扩展中心搜噢! 新书推荐《锋利的jQuery》 onbeforeunload与onunload事件 jQuery 1.3.3 新功能 Twitter新手教程 jQuery性能优化指南(3) jQuery性能优化指南(2) jQuery性能优化指南(1) 50个最好的wordpress插件 26款你可能从未听过的浏览器 养成使用jQuery Sizzle选择器的良好习惯 有关css和js针对不同浏览器兼容的问题 K-MeleonCCF浏览器 jquery 1.3正式版发布了 你是最适合创业的程序员吗? 1st JavaScript Editor Pro 3.8,强大的JavaScript开发工具(JavaScript IDE),完美支持CSS, HTML, DOM and DHTML开发、校验、调试 file上传控件onchange事件失效的解决方法 Content-Disposition的使用和注意事项 ASP.NET生成JSON字符串
jQuery扩展loadthumb,用jQuery实现图片预加载和等比例缩小
痞子刘 · 2009-11-02 · via 博客园 - 痞子刘

/*
 * jQuery插件:
 * 图片预加载
 * 重置图片宽度,高度
 * 图片水平,垂直居中
 * Dev By CssRain.cn
 
*/

jQuery.fn.loadthumb 
= function(options) {
    options 
= $.extend({
         src : 
"",
         imgId : 
"myImgs",
         parentId : 
"CRviewer"
    }
,options);
    
var _self = this;
    _self.hide();
    
var img = new Image();
    $(img).load(
function(){
        imgDem 
= {};
        imgDem.w  
= img.width;
        imgDem.h  
= img.height;
        imgDem 
= $.imgResize({"w": $("#"+options.parentId).width() ,"h": $("#"+options.parentId).height()},{"w":imgDem.w,"h":imgDem.h});
        
var imgMargins = $.imgCenter({"w": $("#"+options.parentId).width() ,"h": $("#"+options.parentId).height()},{"w":imgDem.w,"h":imgDem.h});
        $(
"#"+options.imgId).css({width:imgDem.w,height:imgDem.h,marginLeft:imgMargins.l,marginTop:imgMargins.t});
        _self.attr(
"src", options.src);
        _self.fadeIn(
"slow");
    }
).attr("src", options.src);  //.atte("src",options.src)要放在load后面,
    return _self;
}

//重置图片宽度,高度插件 ( parentDem是父元素,imgDem是图片 )
jQuery.imgResize = function(parentDem,imgDem){
    
if(imgDem.w>0 && imgDem.h>0){
        
var rate = (parentDem.w/imgDem.w < parentDem.h/imgDem.h)?parentDem.w/imgDem.w:parentDem.h/imgDem.h;
        
//如果 指定高度/图片高度  小于  指定宽度/图片宽度 ,  那么,我们的比例数 取 指定高度/图片高度。
        //如果 指定高度/图片高度  大于  指定宽度/图片宽度 ,  那么,我们的比例数 取 指定宽度/图片宽度。
        if(rate <= 1){   
            imgDem.w 
= imgDem.w*rate; //图片新的宽度 = 宽度 * 比例数
            imgDem.h = imgDem.h*rate;
        }
else{//  如果比例数大于1,则新的宽度等于以前的宽度。
            imgDem.w = imgDem.w;
            imgDem.h 
= imgDem.h;
        }

    }

    
return imgDem;
}

//使图片在父元素内水平,垂直居中,( parentDem是父元素,imgDem是图片 )
jQuery.imgCenter = function(parentDem,imgDem){
    
var left = (parentDem.w - imgDem.w)*0.5;
    
var top = (parentDem.h - imgDem.h)*0.5;
    
return "l": left , "t": top};
}

以上网站系列中常用的图片预加载以及控制图片等比例缩小技术。

我将此技术用到了小图 显示大图, 效果还可以。
通过这个插件你可以 完成更多的 效果,比如图片相册,幻灯片 等等。。。
期待更多朋友利用此插件开发更多效果。
演示:
http://cssrain.cn/demo/preloadimages/preload.html

下载:

http://cssrain.cn/demo/preloadimages/preloadimages.rar

 

注意上面下载的代码中jquery.loadthumb.js的默认编码为gb2312,在IE中会受到编码的影响而变形。
所以附上格式化为utf-8格式后的jquery.loadthumb.js,也许大多数人并没有注意到,但是编码的影响是很难察觉的,毕竟页面变形首先想到的是css出问题了,然后是js脚本兼容性做的不好,如果按照这个思路找的话,3-4小时够你受的。