(function($) { $.fn.lazydocument = function(options) { var elements = this; var defaults = { container: $(window), callback: function() {} }; // 不管有没有传入参数,先合并再说; var params = $.extend({}, defaults, options || {}); // 把父元素转为jquery对象; var container = $(params.container); //每次触发滚动事件时,对每个dom元素与container元素进行位置判断,如果满足条件,就把路径赋予这个dom元素! this.each(function() { var self = this; self.loaded = false; }); var update = function() { elements.each(function() { if ((($(this).offset().top - ($(window).scrollTop() + $(window).innerHeight())) < 0) && !this.loaded) { this.loaded = true; params.callback($(this)); } }); }; //加载完毕即执行 update(); //滚动执行 container.bind("scroll", update); }; })(jQuery);