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 交流