100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > html5 游戏图片预加载 前端实现图片(img)预加载

html5 游戏图片预加载 前端实现图片(img)预加载

时间:2024-05-17 08:33:33

相关推荐

html5 游戏图片预加载 前端实现图片(img)预加载

.box{width: 1000px;height: 7000px;position: relative;}

.igm1,.igm2,.igm3{width: 1000px;height: 1000px;margin-bottom: 500px;}

$("img").lazyload({

effect :"fadeIn",

threshold :200

});

新建jquery.lazyload.js文件 导入下面代码即可,当然你也可以去百度上搜

(function($, window, document, undefined) {

var $window = $(window);

$.fn.lazyload = function(options) {

var elements = this;

var $container;

var settings = {

threshold : 0,

failure_limit : 0,

event : "scroll",

effect : "show",

container : window,

data_attribute : "original",

skip_invisible : false,

appear : null,

load : null,

placeholder : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"

};

function update() {

var counter = 0;

elements.each(function() {

var $this = $(this);

if (settings.skip_invisible && !$this.is(":visible")) {

return;

}

if ($.abovethetop(this, settings) ||

$.leftofbegin(this, settings)) {

/* Nothing. */

} else if (!$.belowthefold(this, settings) &&

!$.rightoffold(this, settings)) {

$this.trigger("appear");

/* if we found an image we'll load, reset the counter */

counter = 0;

} else {

if (++counter > settings.failure_limit) {

return false;

}

}

});

}

if(options) {

if (undefined !== options.failurelimit) {

options.failure_limit = options.failurelimit;

delete options.failurelimit;

}

if (undefined !== options.effectspeed) {

options.effect_speed = options.effectspeed;

delete options.effectspeed;

}

$.extend(settings, options);

}

$container = (settings.container === undefined ||

settings.container === window) ? $window : $(settings.container);

if (0 === settings.event.indexOf("scroll")) {

$container.on(settings.event, function() {

return update();

});

}

this.each(function() {

var self = this;

var $self = $(self);

self.loaded = false;

if ($self.attr("src") === undefined || $self.attr("src") === false) {

if ($self.is("img")) {

$self.attr("src", settings.placeholder);

}

}

$self.one("appear", function() {

if (!this.loaded) {

if (settings.appear) {

var elements_left = elements.length;

settings.appear.call(self, elements_left, settings);

}

$("")

.one("load", function() {

var original = $self.attr("data-" + settings.data_attribute);

$self.hide();

if ($self.is("img")) {

$self.attr("src", original);

} else {

$self.css("background-image", "url('" + original + "')");

}

$self[settings.effect](settings.effect_speed);

self.loaded = true;

var temp = $.grep(elements, function(element) {

return !element.loaded;

});

elements = $(temp);

if (settings.load) {

var elements_left = elements.length;

settings.load.call(self, elements_left, settings);

}

})

.attr("src", $self.attr("data-" + settings.data_attribute));

}

});

if (0 !== settings.event.indexOf("scroll")) {

$self.on(settings.event, function() {

if (!self.loaded) {

$self.trigger("appear");

}

});

}

});

$window.on("resize", function() {

update();

});

if ((/(?:iphone|ipod|ipad).*os 5/gi).test(navigator.appVersion)) {

$window.on("pageshow", function(event) {

if (event.originalEvent && event.originalEvent.persisted) {

elements.each(function() {

$(this).trigger("appear");

});

}

});

}

$(document).ready(function() {

update();

});

return this;

};

$.belowthefold = function(element, settings) {

var fold;

if (settings.container === undefined || settings.container === window) {

fold = (window.innerHeight ? window.innerHeight : $window.height()) + $window.scrollTop();

} else {

fold = $(settings.container).offset().top + $(settings.container).height();

}

return fold <= $(element).offset().top - settings.threshold;

};

$.rightoffold = function(element, settings) {

var fold;

if (settings.container === undefined || settings.container === window) {

fold = $window.width() + $window.scrollLeft();

} else {

fold = $(settings.container).offset().left + $(settings.container).width();

}

return fold <= $(element).offset().left - settings.threshold;

};

$.abovethetop = function(element, settings) {

var fold;

if (settings.container === undefined || settings.container === window) {

fold = $window.scrollTop();

} else {

fold = $(settings.container).offset().top;

}

return fold >= $(element).offset().top + settings.threshold + $(element).height();

};

$.leftofbegin = function(element, settings) {

var fold;

if (settings.container === undefined || settings.container === window) {

fold = $window.scrollLeft();

} else {

fold = $(settings.container).offset().left;

}

return fold >= $(element).offset().left + settings.threshold + $(element).width();

};

$.inviewport = function(element, settings) {

return !$.rightoffold(element, settings) && !$.leftofbegin(element, settings) &&

!$.belowthefold(element, settings) && !$.abovethetop(element, settings);

};

$.extend($.expr[":"], {

"below-the-fold" : function(a) { return $.belowthefold(a, {threshold : 0}); },

"above-the-top" : function(a) { return !$.belowthefold(a, {threshold : 0}); },

"right-of-screen": function(a) { return $.rightoffold(a, {threshold : 0}); },

"left-of-screen" : function(a) { return !$.rightoffold(a, {threshold : 0}); },

"in-viewport" : function(a) { return $.inviewport(a, {threshold : 0}); },

"above-the-fold" : function(a) { return !$.belowthefold(a, {threshold : 0}); },

"right-of-fold" : function(a) { return $.rightoffold(a, {threshold : 0}); },

"left-of-fold" : function(a) { return !$.rightoffold(a, {threshold : 0}); }

});

})(jQuery, window, document);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。