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

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Help Net Security
Help Net Security
P
Privacy International News Feed
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
A
Arctic Wolf
Latest news
Latest news
T
Threat Research - Cisco Blogs
L
LINUX DO - 最新话题
P
Privacy & Cybersecurity Law Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Google DeepMind News
Google DeepMind News
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
月光博客
月光博客
N
News and Events Feed by Topic
Jina AI
Jina AI
博客园 - 司徒正美
WordPress大学
WordPress大学
罗磊的独立博客
雷峰网
雷峰网
AI
AI
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Security @ Cisco Blogs
博客园 - 三生石上(FineUI控件)
H
Heimdal Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cisco Blogs
博客园 - 【当耐特】
The Hacker News
The Hacker News
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Schneier on Security
Schneier on Security
博客园 - Franky
S
SegmentFault 最新的问题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cloudbric
Cloudbric
爱范儿
爱范儿
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Secure Thoughts
Last Week in AI
Last Week in AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Know Your Adversary
Know Your Adversary
Google DeepMind News
Google DeepMind News

博客园 - 痞子刘

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小时够你受的。