찾다
웹 프론트엔드JS 튜토리얼page_image 특수 효과에 이미지 지연 로드를 구현하는 js 코드 조각

관련 주소:
http://list.taobao.com/browse/30-50029375/n-1---------0-- -------예---------g,ge3denzxhazdumzsgy3tsnzq------------42-grid-commend-0-all -50029375.htm?TBG=14153.14.7&ssid=r18-s18

http://shop.qq.com/shopList.html
firebug를 이용하여 확인해 보면 알 수 있습니다. 스크롤 해당 행에 도달하면 현재 행의 그림이 즉시 로드됩니다. 이렇게 하면 페이지를 열 때 보이는 영역의 그림만 추가되고 다른 숨겨진 그림은 로드되지 않습니다. 페이지 로딩 속도 비교를 위해 긴 페이지의 경우 이 솔루션이 더 좋습니다.
구현 원칙

로드를 지연해야 하는 모든 이미지를 다음 형식으로 변경합니다.

page_image 특수 효과에 이미지 지연 로드를 구현하는 js 코드 조각

그런 다음 페이지가 로드되면lazy_src를 사용하여 모든 이미지를 배열로 저장한 다음 스크롤할 때 표시되는 영역의 상단을 계산하고 지연 로드된 이미지의 상단을 다음보다 작게 배치합니다. 현재 보이는 영역(즉, 보이는 영역에 그림이 나타나는 것)에 있는 그림의 src 값을lazy_src(그림 로드)로 대체

Code

코드 복사 코드는 다음과 같습니다.

lazyLoad=(function() {
var map_element = {};
var element_obj = [];
var download_count = -1;
var doc_element;
doc_element; = 'BackCompat' ? document.documentElement;
lazy_load_tag ​​​​= 태그 || ["img", "iframe"]
function initElementMap () {
var all_element = [];
//관련된 모든 요소 중에서 로드를 지연해야 하는 요소를 찾습니다.
for (var i = 0,
len =lazy_load_tag.length; i var el = document.getElementsByTagName(lazy_load_tag[i]);
for (var j = 0,
len2 = el.length; j if (typeof(el [j]) == "객체" && el[j].getAttribute("lazy_src")) {
element_obj.push(all_element[key])
}
}
}

for (var i = 0,
len = element_obj.length; i var o_img = element_obj[i]
var t_index = getAbsoluteTop(o_img); //문서를 기준으로 이미지의 상단 거리를 가져옵니다
if (map_element[t_index]) {
map_element[t_index].push(i)
} else {
//저장 위의 거리에 따른 대기열
t_array[0] = i;
map_element[t_index] = t_array;
download_count;//사진 수 지연 필요
}
}

};
function initDownloadListen() {
if (!download_count) return
var offset = (window.MessageEvent && !document .getBoxObjectFor) ? .scrollTop: doc_element.scrollTop;//시각적 영역의 오프셋 = 문서의 높이
var visio_offset = offset doc_element.clientHeight
if (last_offset == visio_offset) {
setTimeout (initDownloadListen, 200);
return;
}
last_offset = visio_offset;
var visio_height = visio_height offset
for (map_element의 var 키 ) {
if (img_show_height > key) {
var t_o = map_element[key]
var img_vl = t_o.length;
for (var l = 0; l element_obj[t_o[l]].src = element_obj[t_o[l]].getAttribute("lazy_src")
}
delete map_element[key]
download_count- ;
}
}
setTimeout(initDownloadListen, 200);
};
function getAbsoluteTop(element) {
if (arguments.length != 1 || element == null ) {
return null;
}
var offsetTop = element.offsetTop;
while (element = element.offsetParent) {
offsetTop = element.offsetTop;
반환 offsetTop;
}
function init(tags) {
initElementMap()
initDownloadListen()
return {
init: init
}
})();


사용법: 페이지 로딩을 지연시켜야 하는 이미지의 src를lazy_src로 변경한 후 위의 js를 넣어줍니다. 마지막에 다음을 호출하세요:lazyLoad.init();
놀리려면 Firebug를 사용하여 이미지 로딩이 지연되는지 확인할 수 있습니다.
추가:
페이지에 콘텐츠 전환이 있는 열이 있는 경우 전환 중에 콘텐츠의 이미지가 표시되지 않을 수 있습니다. 해결 방법은 다음과 같이 콘텐츠 중에 이미지를 별도로 로드하는 것입니다. 🎜>



코드 복사


코드는 다음과 같습니다.


///콘텐츠 전환 코드...
chlid.find("img[init_src]").each(function(){
$(this).attr("src",$(this).attr("init_src"));
$ (this).removeAttr("init_src")
});
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何在Word中复制页面如何在Word中复制页面Feb 20, 2024 am 10:09 AM

是否要复制MicrosoftWord中的页面,并保持格式不变?这是一个聪明的想法,因为当您想要创建特定文档布局或格式的多个副本时,在Word中复制页面可能是一种有用的节省时间的技术。本指南将逐步引导您在Word中复制页面的过程,无论是创建模板还是复制文档中的特定页面。这些简单的说明旨在帮助您轻松地重新制作页面,省去从头开始的麻烦。为什么要在MicrosoftWord中复制页面?在Word中复制页面非常有益的原因有以下几点:当您有一个具有特定布局或格式的文档要复制时。与从头开始重新创建整个页面不同

如何快速刷新网页?如何快速刷新网页?Feb 18, 2024 pm 01:14 PM

页面刷新在我们日常的网络使用中非常常见,当我们访问一个网页后,有时候会遇到一些问题,比如网页加载不出来或者显示不正常等。这时候我们通常会选择刷新页面来解决问题,那么如何快速地刷新页面呢?下面我们就来探讨一下页面刷新的快捷键。页面刷新快捷键是一种通过键盘操作来快速刷新当前网页的方法。在不同的操作系统和浏览器中,页面刷新的快捷键可能有所不同。下面我们以常见的W

3秒跳转页面实现方法:PHP编程指南3秒跳转页面实现方法:PHP编程指南Mar 25, 2024 am 10:42 AM

标题:3秒跳转页面实现方法:PHP编程指南在网页开发中,页面跳转是常见的操作,一般情况下我们使用HTML中的meta标签或者JavaScript的方法进行页面跳转。不过,在某些特定的情况下,我们需要在服务器端进行页面跳转。本文将介绍如何使用PHP编程实现一个在3秒内自动跳转到指定页面的功能,同时会给出具体的代码示例。PHP实现页面跳转的基本原理PHP是一种在

如何在iPhone上自定义和编辑待机模式:iOS 17的新功能如何在iPhone上自定义和编辑待机模式:iOS 17的新功能Sep 21, 2023 pm 04:01 PM

待机是iOS17更新中的一项新功能,它提供了一种新的增强方式,可以在手机快速闲置时访问信息。通过StandBy,您可以方便地查看时间、查看即将发生的事件、浏览日历、获取您所在位置的天气更新等等。激活后,iPhone在充电时设置为横向时会直观地进入待机模式。此功能非常适合床头柜等无线充电点,或者在日常任务中离开iPhone充电时。它允许您轻扫待机中显示的各种小部件,以访问来自各种应用程序的不同信息集。但是,您可能希望根据您的偏好和您经常需要的信息修改这些小部件,甚至删除一些小部件。因此,让我们深入

处理Laravel页面无法正确显示CSS的方法处理Laravel页面无法正确显示CSS的方法Mar 10, 2024 am 11:33 AM

《处理Laravel页面无法正确显示CSS的方法,需要具体代码示例》在使用Laravel框架开发Web应用时,有时候会遇到页面无法正确显示CSS样式的问题,这可能会导致页面呈现不正常的样式,影响用户体验。本文将介绍一些处理Laravel页面无法正确显示CSS的方法,并提供具体的代码示例,帮助开发者解决这一常见问题。一、检查文件路径首先要检查CSS文件的路径是

重新排列、禁用和删除 iPhone 主屏幕页面的方法重新排列、禁用和删除 iPhone 主屏幕页面的方法Nov 29, 2023 am 08:22 AM

在iOS中,Apple允许您禁用iPhone上的单个主屏幕页面。还可以重新排列主屏幕页面的顺序,并直接删除页面,而不仅仅是禁用它们。这是它的工作原理。如何重新排列主屏幕页面触摸并按住主屏幕上的空格可进入抖动模式。轻点代表主屏幕页面的圆点行。在显示的主屏幕网格中,轻触并拖动页面以将其相对于其他页面重新排列。其他人会移动以响应您的拖拽动作。当您对新排列感到满意时,点击屏幕右上角的“完成”,然后再次点击“完成”以退出抖动模式。如何禁用或删除主屏幕页面触摸并按住主屏幕上的空格可进入抖动模式。轻点代表主屏

利用ThinkPHP6实现漂亮的404页面利用ThinkPHP6实现漂亮的404页面Jun 20, 2023 am 11:06 AM

随着互联网的日益发展,许多网站或应用也逐渐变得复杂。当用户在使用时,时常会遇到错误页面,其中最常见的就是404页面。404页面指访问的页面不存在,是常见的错误页面。而对于网站或应用来说,一个漂亮的404页面能极大提升用户体验。在本文中,我们将会介绍如何利用ThinkPHP6快速实现一个漂亮的404页面。创建路由首先,我们需要在route文件夹中创建一个err

Word删除一页内容的方法介绍Word删除一页内容的方法介绍Mar 26, 2024 am 10:06 AM

标题:Word删除一页内容的方法介绍在使用MicrosoftWord编辑文档时,有时会遇到需要删除某一页内容的情况,可能是想删除文档中的一页空白页或者某一页不需要的内容。针对这种情况,我们可以采取一些方法来快速、有效地删除一页内容。接下来,将介绍一些在MicrosoftWord中删除一页内容的方法。方法一:删除一页内容首先,打开需要编辑的Word文档。定

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구