20130628-imageAutoSize-imagesLoaded-live

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;
	});
});


view code


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

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

每日分享有用的前端开发知识,加我微信:caibaojian89 交流