Example tutorial of implementing lazy loading of images based on JS
Lazy loading of images is also a relatively common method of performance optimization. This article mainly introduces examples of lazy loading of images using native JS. The detailed code is compiled here. Friends in need can refer to it
Preface
Lazy loading of images is also a common performance optimization method. Recently, I was using vue to make a news list client. It has also been used. Here is a brief introduction to the implementation principle and part of the code.
Implementation Principle
When loading a page, pictures are always the main source of traffic, and there are many performance methods for pictures, such as base64, Sprite pictures, etc.; lazy loading is also one of them. The main principle is to set the src of the non-first-screen picture to a default value, then monitor the window scrolling, and then give it a real picture address when the picture appears in the window. This can Ensure the loading speed of the first screen and then load images on demand.
Specific code
First, when rendering, the picture refers to the default picture, and then The real address is placed above the data-* attributes.
<image src='./../assets/default.png' :src='item.allPics' class='lazyloadimg'>
Then to monitor scrolling, just use window.onscroll, but one thing to note is that it is similar to window scroll and resize, as well as mousemove For this type of event that triggers frequently, it is best to use throttling or debounce to control the triggering frequency. There are two methods of encapsulation in underscore and lodash, so I won’t introduce them in detail here.
The next step is to determine whether the image appears in the window, mainly based on three heights: 1. How far the current body has scrolled from the top. 2. The height of the window. 3. The distance between the current picture and the top. The specific code is as follows:
window.onscroll =_.throttle(this.watchscroll, 200); watchscroll () { var bodyScrollHeight = document.body.scrollTop;// body滚动高度 var windowHeight = window.innerHeight;// 视窗高度 var imgs = document.getElementsByClassName('lazyloadimg'); for (var i =0; i < imgs.length; i++) { var imgHeight = imgs[i].offsetTop;// 图片距离顶部高度 if (imgHeight < windowHeight + bodyScrollHeight) { imgs[i].src = imgs[i].getAttribute('src'); img[i].className = img[i].className.replace('lazyloadimg','') } } }
Conclusion
That’s about it. This time I may add the implementation of the anti-shake throttling source code. Finally, two common scrolling judgments will be added:
1. The page scrolls away from the home screen (at this time, the button to return to the top can be displayed): document.body.scrollTop > window. innerHeight
2. The page has scrolled to the bottom (you can adjust the interface to get more content): window.scrollY + window.innerHeight > document.body.offsetHeight
The above is the entire content of this article. I hope it will be helpful to everyone's study. I also hope that everyone will support Script House.
The above is the detailed content of Example tutorial of implementing lazy loading of images based on JS. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Vue3 is a popular JavaScript framework that is easy to learn and use, efficient and stable, and is especially good at building single-page applications (SPA). The lazy function in Vue3, as one of the powerful tools for lazy loading of components, can greatly improve the performance of the application. This article will explain in detail the usage and principles of the lazy function in Vue3, as well as its application scenarios and advantages in actual development. What is lazy loading? In traditional front-end and back-end development, front-end developers often need to deal with a large number of

As web applications become increasingly complex, front-end developers need to better provide functionality and user experience while ensuring page loading speeds. This involves lazy loading and preloading of Vue components, which are important means to optimize the performance of Vue applications. This article will provide an in-depth introduction to the implementation methods of lazy loading and preloading of Vue components. 1. What is lazy loading? Lazy loading means that the code of a component will only be loaded when the user needs to access it, instead of loading the code of all components at the beginning. This can reduce

How to solve the problem of lazy loading failure of images in Vue development Lazy loading (LazyLoad) is one of the optimization technologies commonly used in modern web development. Especially when loading a large number of images and resources, it can effectively reduce the burden on the page and improve the user experience. However, when developing using the Vue framework, sometimes we may encounter the problem of lazy loading of images failing. This article will introduce some common problems and solutions so that developers can better deal with this problem. Image resource path error First, we need to ensure that the image resource

The way to implement lazy loading when paging PHP arrays is to use an iterator to load only one element of the data set. Create an ArrayPaginator object, specifying the array and page size. Iterate over the object in a foreach loop, loading and processing the next page of data each time. Advantages: improved paging performance, reduced memory consumption, and on-demand loading support.

The methods of lazy loading include lazy loading of pictures, lazy loading of videos, lazy loading of script files, lazy loading of data, etc. Detailed introduction: 1. Image lazy loading is a common lazy loading implementation method. When the page is loaded, only the images in the visible area are loaded, and the images in other areas are presented in the form of placeholders. When the user scrolls the page to The real image is loaded when the image position is specified. Image lazy loading can be achieved by using the existing JavaScript library or custom code; 2. Video lazy loading is implemented in a similar way to image lazy loading, such as when the page is loading, etc.

Lazy loading is a programming pattern that refers to loading data only when needed, rather than obtaining data immediately when the object is initialized or loaded. The purpose of lazy loading is to delay the loading of data to save system resources and Improve performance.

How to use Lazy to implement lazy loading in C# requires specific code examples. In software development, lazy loading (Lazyloading) is a lazy loading technology, which can help us improve the performance and resource utilization efficiency of the program. In C#, we can use the Lazy class to implement lazy loading. This article will introduce the basic concepts of the Lazy class and how to use it to implement lazy loading, and will provide specific code examples. First, we need to understand Lazy

How to handle lazy loading and preloading of image resources in Vue technology development. With the enrichment of web page content, images have become an indispensable part of web pages. However, loading a large number of image resources may cause the webpage to load slowly and affect the user experience. In order to solve this problem, we can use lazy loading and preloading technology of image resources to optimize the user experience. 1. Lazy loading technology Lazy loading means that when the images in the web page are first loaded, only the images in the visible area are loaded. When the user scrolls the page and reaches the area where the image is located, the image is loaded again.
