jQuery.fn.imageAutoSize = function(w) {
$(this).each(function() {
var image = $(this);
var ow = image.width();
var oh = image.height();
if( ow > w) {
var h = w/ow*oh;
image.width(w);
image.height(h);
}
});
}
jQuery.fn.imagesLoaded = function(callback, context) {
var elems = this.filter('img'),
len = elems.length,
blank = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
context = context || elems;
function countdown() {
if (this.src != blank) {
if (--len <= 0)
callback.call(context, this);
}
}
elems.each(function() {
var src = this.src;
this.src = blank;
$(this).one('load error', countdown);
this.src = src;
});
if (!elems.length)
callback.call(context);
return this;
};
jQuery(document).ready(function($) {
$('.box img').imagesLoaded(function() {
$('#boxes').masonry({
itemSelector: '.box',
columnWidth: 210,
gutterWidth: 40
});
});
$('#boxes .box').live({
'mouseenter': function() {
$(this).addClass('box-hover');
},
'mouseleave': function() {
$(this).removeClass('box-hover');
}
});
$('.post-content img').imagesLoaded(function() {
var ow = $(this).width();
if(ow > 710) {
$(this).imageAutoSize(960);
var w = $(this).width();
$(this).css({'margin-left':'-'+(w-710)+'px'});
}
});
$('.totop').click(function(){
$('html, body').animate({scrollTop:0}, 'slow');
return false;
});
});
20130628-imageAutoSize-imagesLoaded-live
关注我
我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

- 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
- 回复「Vue脑图」获取 Vue 相关脑图
- 回复「思维图」获取 JavaScript 相关思维图
- 回复「简历」获取简历制作建议
- 回复「简历模板」获取精选的简历模板
- 回复「加群」进入500人前端精英群
- 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
- 回复「知识点」下载高清JavaScript知识点图谱
每日分享有用的前端开发知识,加我微信:caibaojian89 交流