• 延迟加载图片


    lazyload.js

    (function($) {
    $.fn.lazyload = function(options) {
    var settings = {
    threshold    : 0,
    failurelimit : 0,
    event        : "scroll",
    effect       : "show",
    container    : window
    };
    if(options) {
    $.extend(settings, options);
    }
    var elements = this;
    if ("scroll" == settings.event) {
    $(settings.container).bind("scroll", function(event) {
    var counter = 0;
    elements.each(function() {
    if ($.abovethetop(this, settings) ||
    $.leftofbegin(this, settings)) {
    } else if (!$.belowthefold(this, settings) &&
    !$.rightoffold(this, settings)) {
    $(this).trigger("appear");
    } else {
    if (counter++ > settings.failurelimit) {
    return false;
    }
    }
    });
    var temp = $.grep(elements, function(element) {
    return !element.loaded;
    });
    elements = $(temp);
    });
    }
    this.each(function() {
    var self = this;
    $(self).one("appear", function() {
    if (!this.loaded) {
    $("<img />")
    .bind("load", function() {
    $(self)
    .hide()
    .attr("src", $(self).attr("original"))
    [settings.effect](settings.effectspeed);
    self.loaded = true;
    })
    .attr("src", $(self).attr("original"));
    };
    });
    if ("scroll" != settings.event) {
    $(self).bind(settings.event, function(event) {
    if (!self.loaded) {
    $(self).trigger("appear");
    }
    });
    }
    });
    $(settings.container).trigger(settings.event);
    return this;
    };
    $.belowthefold = function(element, settings) {
    if (settings.container === undefined || settings.container === window) {
    var fold = $(window).height() + $(window).scrollTop();
    } else {
    var fold = $(settings.container).offset().top + $(settings.container).height();
    }
    return fold <= $(element).offset().top - settings.threshold;
    };
    $.rightoffold = function(element, settings) {
    if (settings.container === undefined || settings.container === window) {
    var fold = $(window).width() + $(window).scrollLeft();
    } else {
    var fold = $(settings.container).offset().left + $(settings.container).width();
    }
    return fold <= $(element).offset().left - settings.threshold;
    };
    $.abovethetop = function(element, settings) {
    if (settings.container === undefined || settings.container === window) {
    var fold = $(window).scrollTop();
    } else {
    var fold = $(settings.container).offset().top;
    }
    return fold >= $(element).offset().top + settings.threshold  + $(element).height();
    };
    $.leftofbegin = function(element, settings) {
    if (settings.container === undefined || settings.container === window) {
    var fold = $(window).scrollLeft();
    } else {
    var fold = $(settings.container).offset().left;
    }
    return fold >= $(element).offset().left + settings.threshold + $(element).width();
    };
    $.extend($.expr[':'], {
    "below-the-fold" : "$.belowthefold(a, {threshold : 0, container: window})",
    "above-the-fold" : "!$.belowthefold(a, {threshold : 0, container: window})",
    "right-of-fold"  : "$.rightoffold(a, {threshold : 0, container: window})",
    "left-of-fold"   : "!$.rightoffold(a, {threshold : 0, container: window})"
    });})(jQuery);
  • 相关阅读:
    反向映射和写时复制
    内存分析的好blog
    minicom使用
    tee的妙用
    网络带宽
    mem analyse
    linux 应用层常用API/命令
    ubuntu 库依赖问题
    Python基础学习笔记(一:hello world)
    第7章 取消与关闭
  • 原文地址:https://www.cnblogs.com/daixingqing/p/2768361.html
Copyright © 2020-2023  润新知