热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

图片延时加载插件(lazyload)

图片延时加载(lazyload)是网站常用的一种手段,目的是为了减少页面加载时向服务器的请求数,这里分享一款支持大部分情况下(如IPAD浏

图片延时加载(lazyload)是网站常用的一种手段,目的是为了减少页面加载时向服务器的请求数,这里分享一款支持大部分情况下(如IPAD浏览、异步加载、某个范围加载)的图片延时加载插件。

 

代码及效果

先贴代码:

$.extend({imgLoad: function (options) {options = $.extend({container: "img",//集合time: 600,//滚动时定时刷新时间attribute: "src2" //保存原图地址的自定义属性
}, options);var container = options.container, n = n || 0, tim, _time = 0;Load();function GetHeight() {var d = document,y = (navigator.userAgent.toLowerCase().match(/iPad/i) == "ipad") ? window.pageYOffset : Math.max(d.documentElement.scrollTop, d.body.scrollTop);return d.documentElement.clientHeight + y - n;}function Load() {var hg = GetHeight();$(container).each(function () {var _s2 = $(this).attr(options.attribute), t = $(this).offset().top;if (_s2 && t hg - 1000) {$(this).attr("src", _s2).removeAttr(options.attribute)};})};if (!!window.ActiveXObject && !window.XMLHttpRequest){ _time = options.time }$(window).scroll(function () {clearTimeout(tim);tim = setTimeout(function () { Load(); }, options.time);});}})


点击这里查看效果

 

参数说明

参数container:container表示要遍历的容器,默认是IMG,也就是遍历整个页面的所有IMG。如果想只延时加载某个范围内的图片,可以修改此参数,如我想异步加载面代码中ul中的图片,那么只需要设置参数container的值为".imgContainer li img"即可。

<Script type&#61;"Javascript/text">$(function(){$.imgLoad({ container: ".imgContainer li img"});})
Script>
<ul class&#61;"imgContainer"><li><img src2&#61;"X1.JPG" />li><li><img src2&#61;"X2.JPG" />li><li><img src2&#61;"X3.JPG" />li>ul>


参数time&#xff1a;参数time表示延时加载的时间&#xff0c;默认是600毫秒&#xff0c;就是说当页面滚动到该范围时0.6秒后该图片就会显示&#xff0c;设置time为1秒&#xff1a;

<Script type&#61;"Javascript/text">
$(
function(){$.imgLoad({"time":1000 });
})
Script>

参数attribute&#xff1a;此参数为存储图片路径的参数&#xff0c;在图片设置SRC属性之前&#xff0c;要把真实的图片路径存在某个属性里&#xff0c;默认为SRC2&#xff0c;可以把此属性设置为任意&#xff1a;

<Script type&#61;"Javascript/text">$(function(){$.imgLoad({ attribute: "myAttr"});})
Script>
<body><img myAttr&#61;"1.jpg"/>
body>


基本参数已经讲完了&#xff0c;关于调用也是相当简单的。这里还有一个问题&#xff0c;由于延时加载的方法是写在页面滚动的事件里&#xff0c;也就是代码中的

$(window).scroll(function () {clearTimeout(tim);tim &#61; setTimeout(function () { Load(); }, options.time);});


那么如果直接刷新页面浏览器会直接跳到当前停留的位置&#xff0c;但是有的浏览器没有触发scroll事件&#xff0c;这种情况下的解决办法在页面加载完成后使用scrollTop方法&#xff0c;让浏览器向上1个像素&#xff1a;

jQuery(window).scrollTop(1)


这样这个插件就讲完了&#xff0c;相对于网上的一些插件应该算是简单实用的了&#xff0c;欢迎大家踊跃讨论。

转:https://www.cnblogs.com/w-pound/archive/2013/04/24/3040254.html



推荐阅读
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 基于Dubbo与Zipkin的微服务调用链路监控解决方案
    本文提出了一种基于Dubbo与Zipkin的微服务调用链路监控解决方案。通过抽象配置层,支持HTTP和Kafka两种数据上报方式,实现了灵活且高效的调用链路追踪。该方案不仅提升了系统的可维护性和扩展性,还为故障排查提供了强大的支持。 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • async/await 是现代 JavaScript 中非常强大的异步编程工具,可以极大地简化异步代码的编写。本文将详细介绍 async 和 await 的用法及其背后的原理。 ... [详细]
  • 利用REM实现移动端布局的高效适配技巧
    在移动设备上实现高效布局适配时,使用rem单位已成为一种流行且有效的技术。本文将分享过去一年中使用rem进行布局适配的经验和心得。rem作为一种相对单位,能够根据根元素的字体大小动态调整,从而确保不同屏幕尺寸下的布局一致性。通过合理设置根元素的字体大小,开发者可以轻松实现响应式设计,提高用户体验。此外,文章还将探讨一些常见的问题和解决方案,帮助开发者更好地掌握这一技术。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • Windows 10系统对Intel服务器的影响:来自微软官网的下载选项分析 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • Python爬虫入门:深入解析HTTP协议与Requests库的应用
    Python爬虫入门:深入解析HTTP协议与Requests库的应用 ... [详细]
author-avatar
手机用户2502931803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有