• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >心得技巧 > lazyLoad图片延时加载

lazyLoad图片延时加载

作者:qq_36162895的博客 字体:[增加 减小] 来源:互联网 时间:2017-09-04

本文主要包含lazyload懒加载,lazyload,lazyload.js,jquery.lazyload.js,lazyload官网等相关知识,qq_36162895的博客希望在学习及工作中可以帮助到您

// 图片延时加载(调用lazyLoad.init([html标签])对标记为需要延时加载的图片进行延时加载) 
lazyLoad = (function () { 
// 存储页面延时加载元素的对象{} 
var map_element = {}; 
// 保存延时加载的元素 
var element_obj = []; 
//需要延时加载的图片数量 
var download_count = 0; 
var last_offset = -1; 
var doc_body; 
var doc_element; 
// 延时加载html标签(默认img iframe) 
var lazy_load_tag; 
// 设置延时加载的html标签(默认img iframe) 
function initVar(tags) { 
doc_body = document.body; 
// 判断当前浏览器采用的渲染方式 
doc_element = document.compatMode == ‘BackCompat’ ? doc_body : document.documentElement; 
lazy_load_tag = tags || [“img”, “iframe”]; 
}; 
function initElementMap() { 
var all_element = []; 
//从所有相关元素中找出需要延时加载的元素 
for (var i = 0, 
len = lazy_load_tag.length; i < len; i++) { 
var el = document.getElementsByTagName(lazy_load_tag[i]); 
for (var j = 0, 
len2 = el.length; j < len2; j++) { 
if (typeof (el[j]) == “object” && el[j].getAttribute(“lazy_src”)) { 
// 向element_obj数组中添加延时加载的元素el[j] 
element_obj.push(el[j]); 
} 
} 
} 
for (var i = 0, 
len = element_obj.length; i < len; i++) { 
// o_img 每一张图片 
var o_img = element_obj[i]; 
//得到图片相对document的距上距离 
var t_index = getAbsoluteTop(o_img); 
if (map_element[t_index]) { 
map_element[t_index].push(i); 
} else { 
//按距上距离保存一个队列 
var t_array = []; 
t_array[0] = i; 
map_element[t_index] = t_array; 
download_count++; //需要延时加载的图片数量 
} 
} 
}; 
// 元素加载的监听事件 
function initDownloadListen() { 
if (!download_count) return; 
var offset = (window.MessageEvent && !document.getBoxObjectFor) ? doc_body.scrollTop : doc_element.scrollTop; 
//可视化区域的offtset=document的高+ 
var visio_offset = offset + doc_element.clientHeight; 
if (last_offset == visio_offset) { 
setTimeout(initDownloadListen, 200); 
return; 
} 
last_offset =

您可能想查找下面的文章:

  • lazyLoad图片延时加载

相关文章

  • 2017-08-06网页页脚该注意的地方小结
  • 2017-08-06HTTP 状态代码整理介绍
  • 2017-08-06搜索文本框焦点离开时文本位置跳动问题解决方法
  • 2018-08-23设计实战!如何设计一款富有情感吸引力的拼字游戏
  • 2017-08-06CSS 连接地址后面加上问号(?)表示什么意思?
  • 2018-08-23熟知用户行为的这7个层面,你的设计才会走进人心
  • 2017-08-06对背景图定位中background-position属性的自我理解
  • 2018-08-23这3种独特的趋势,能让网页设计增色不少
  • 2017-08-06即将成为主流的2015—2016交互体验趋势
  • 2017-08-06用Meta 取消流量器缓存实现每次访问都刷新页面方便调试

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • http 请求头设置
    • Web前端开发工程师需要掌握的核心技能
    • 为了让你用上正版字体,他辞职花了 2 年造字
    • 为什么你做的设计总是不耐看?
    • 是什么设计方法,让网易设计师都认同用它做出来的用户画像?
    • 在现代网页设计中,动效有哪些常见的用法?
    • 以用户为中心作为设计的标准
    • 百度网盟环境下的广告投放技巧(图文教程)
    • 那些很熟悉但又叫不出名字的设计法则:功能可供性
    • 5个关键词,写出“有故事感”的文案

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有