`
qianlong1207
  • 浏览: 36788 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

js延迟加载

 
阅读更多

页面要延迟加载的图片做如下修改:

<img tsrc="http://productimg.xing800.com${mimg}" src="http://img.xing800.com/zhuanti/gun.gif" name="lazy" width="220" height="150" alt="${groupbuy.title}" />

 

 

js:

 

var windowOffset;

var windowSize;

var lazys = new Array();

function getWindowOffset() {

var offset = {

x : 0,

y : 0

};

if (typeof window.pageXOffset != 'undefined'

|| typeof window.pageYOffset != 'undefined') {

offset.x = window.pageXOffset;

offset.y = window.pageYOffset;

} else if (typeof document.compatMode != 'undefined'

&& document.compatMode == 'CSS1Compat') {

offset.x = document.documentElement.scrollLeft;

offset.y = document.documentElement.scrollTop;

} else if (typeof document.body != 'undefined'

&& (document.body.scrollLeft || document.body.scrollTop)) {

offset.x = document.body.scrollLeft;

offset.y = document.body.scrollTop;

}

return offset;

}

function getObjOffset(element) {

var objOffset = {

x : 0,

y : 0

};

if (arguments.length != 1 || element == null) {

return null;

}

objOffset.x = element.offsetLeft;

objOffset.y = element.offsetTop;

while (element = element.offsetParent) {

objOffset.x += element.offsetLeft;

objOffset.y += element.offsetTop;

}

return objOffset;

}

function getWindowSize() {

var client = {

x : 0,

y : 0

};

if (typeof document.compatMode != 'undefined'

&& document.compatMode == 'CSS1Compat') {

client.x = document.documentElement.clientWidth;

client.y = document.documentElement.clientHeight;

} else if (typeof document.body != 'undefined'

&& (document.body.scrollLeft || document.body.scrollTop)) {

client.x = document.body.clientWidth;

client.y = document.body.clientHeight;

}

return client;

}

function getObjSize(element) {

var objSize = {

x : 0,

y : 0

};

if (arguments.length != 1 || element == null) {

return null;

}

objSize.x = element.offsetWidth;

objSize.y = element.offsetHeight;

return objSize;

}

function getLazys() {

var imgs = document.getElementsByName("lazy");

var lazys = new Array();

for (i = 0; i < imgs.length; i++) {

var tmp = new Object;

tmp.element = imgs[i];

tmp.tsrc = imgs[i].getAttribute("tsrc");

tmp.x = getObjOffset(imgs[i]).x;

tmp.y = getObjOffset(imgs[i]).y;

tmp.w = getObjSize(imgs[i]).x;

tmp.h = getObjSize(imgs[i]).y;

lazys.push(tmp);

}

return lazys;

}

function loadimg() {

if (typeof lazys == 'undefined')

return;

for (i = 0; i < lazys.length; i++) {

if (lazys[i].x + lazys[i].w > windowOffset.x

&& lazys[i].x < windowOffset.x + windowSize.x

&& lazys[i].y + lazys[i].h + 200 > windowOffset.y

&& lazys[i].y < windowOffset.y + windowSize.y + 200) {

if (lazys[i].element.getAttribute("tsrc") != null) {

lazys[i].element.src = lazys[i].tsrc;

lazys[i].element.removeAttribute("tsrc");

lazys.splice(i, 1);

i--;

}

}

}

}

function init() {

lazys = getLazys();

lazyLoad();

}

function lazyLoad() {

windowOffset = getWindowOffset();

windowSize = getWindowSize();

loadimg();

if (lazys.length == 0) {

clearTimeout(timer);

}

}

var timer;

init();

timer = setInterval(lazyLoad, 200);

 

 

http://shop68305897.taobao.com

我的淘宝店

支持下

帮我刷刷行用

  • js.rar (948 Bytes)
  • 下载次数: 3
分享到:
评论

相关推荐

    Echojs延迟加载图片JavaScript微型库

    **Echo.js:一款高效实用的JavaScript延迟加载图片库** 在网页设计中,图片是不可或缺的元素,它们可以增强用户体验,但同时也可能导致页面加载速度变慢。为了优化网站性能,延迟加载(Lazy Loading)技术应运而生...

    原生js延迟加载

    在JavaScript的世界里,延迟加载(Lazy Loading)是一种优化网页性能的技术,它允许我们仅在真正需要时才加载资源,如图片、脚本或视频。这种技术可以显著减少初始页面加载时间,提高用户体验,并减少服务器压力。...

    js设置延迟加载

    ### js设置延迟加载 在现代Web开发中,为了提高用户体验并优化资源管理,开发者们常常会用到“延迟加载”(Lazy Loading)技术。本文将详细介绍如何使用JavaScript实现页面元素或功能的延迟加载,帮助读者更好地...

    延迟加载js代码下载(包括页面延迟加载以及图片延迟加载)

    JavaScript延迟加载是通过监听滚动事件来实现的。当页面滚动到特定位置时,触发一个函数来加载所需资源。这可以通过监听`window.onscroll`或`window.addEventListener('scroll', callback)`实现。关键在于计算元素...

    jquery图片延迟加载

    为了解决这个问题,开发人员引入了“图片延迟加载”技术,jQuery作为一款广泛使用的JavaScript库,提供了实现这一功能的强大工具。本文将深入探讨jQuery图片延迟加载的概念、优势以及实现方法。 **一、什么是图片...

    延迟加载JS/CSS

    2. **JavaScript延迟加载**:lazyload.js 文件可能是一个实现延迟加载功能的JavaScript库。它通常通过监听滚动事件来判断元素是否进入视口,一旦进入,就立即加载对应的资源。例如,可以使用Intersection Observer ...

    LazyLoad类库 js 延迟加载工具

    延迟加载是一种优化网页性能的策略,它允许我们只在需要时才加载资源,如图片、JavaScript或CSS。这种技术显著减少了初始页面加载时间,提高了用户体验,尤其是在移动设备上,因为它们通常具有有限的带宽。 **Lazy...

    html延迟加载JS和CSS

    首先,让我们深入理解JavaScript延迟加载(Lazy Loading)的概念。通常,JavaScript脚本如果放置在`&lt;head&gt;`标签内,会阻塞页面的渲染,直到脚本加载并执行完毕。为了改善这种情况,我们可以将脚本放在页面底部(`...

    js延迟加载图片实例代码

    JavaScript延迟加载图片是一种优化网页性能的技术,特别是在网页包含大量图片时。这种技术允许网页只在用户滚动到可视区域时才加载图片,而不是一次性全部加载,从而减少了页面初始加载时间,提高了用户体验,特别是...

    JavaScript 封装的延迟加载技术示例 JavaScript 封装的延迟加载技术示例,可以用于加载容器、加载DIV以及加载图片等,可有效降低浏览器损耗,有兴趣可以尝试一番。

    JavaScript延迟加载技术是一种优化网页性能的重要策略,它允许我们按需加载资源,而不是一次性加载所有内容,从而减少了页面初始化时的负担,提升了用户体验。在这个示例中,我们将探讨如何使用JavaScript来封装延迟...

    js滚动延时加载

    JavaScript滚动延时加载,也称为懒加载(Lazy Loading),是一种优化网页性能的技术。...在实际项目中,你还可以结合使用现有的JavaScript库和框架,如Vue.js或React,它们都有成熟的滚动延时加载解决方案。

    页面延迟加载JS包 lazyload.js scrollloading.js

    "lazyload.js" 是一个专门用于延迟加载图片、视频和其他HTML元素的JavaScript库。它通过监听用户的滚动事件,判断元素是否进入视口,如果进入则加载相应的资源。这个库通常会替换原始的`src`属性为占位符,然后在...

    DIY的JS延迟加载图片的插件

    今天共享一个DIY的利用JS来延迟加载图片的插件。 大概的实现方式是:页面的定义元素img时,将src统一替换成自定义的一个属性名,如叫“originalSrc”,然后利用JS把给img的src设置为一个定义好的等待图片,然后在...

    延迟加载 html优化

    例如,压缩包中的`LazyLoad.js`可能就是一个用于实现延迟加载功能的JavaScript库。这个库通常会监听用户的滚动事件,当检测到用户滚动到某个图像或元素时,就会触发对应的加载操作。同时,为了确保兼容性和性能,这...

    js延时图片加载

    提供的文件`o_loading.gif`可能是用于延迟加载时的占位符图片,而`js延时加载.html`是一个实际的示例页面,其中包含了上述延迟加载的JavaScript代码。在这个页面中,可以看到如何将`Intersection Observer`或`scroll...

    JS延迟加载百度分享代码提高网页速度

    JS延迟加载百度分享代码提高网页速度

    Jquery延时加载

    **jQuery延迟加载(Jquery延时加载)**是一种优化网页性能的技术,主要应用于图片加载,尤其是在内容丰富的网页中。这种技术允许网页只加载用户当前视口内的内容,当用户滚动页面,即将进入视口的图片才会开始加载。...

    js图片延迟加载 一个很好的例子

    以下是一个简单的JavaScript延迟加载图片的示例: ```html &lt;!DOCTYPE html&gt; &lt;title&gt;JavaScript图片延迟加载示例 .lazy { width: 100%; height: auto; opacity: 0; /* 预加载过渡效果 */ transition: ...

    js页面图片延迟加载特效.zip

    在网页设计中,提高用户体验和...总结来说,"js页面图片延迟加载特效"是一种高效优化网页加载速度的技术,通过JavaScript实现,能显著提升用户体验。通过理解和应用这些知识点,开发者可以创建更流畅、响应更快的网页。

Global site tag (gtag.js) - Google Analytics