Maison interface Web js tutoriel jquery插件lazyload.js延迟加载图片的使用方法_jquery

jquery插件lazyload.js延迟加载图片的使用方法_jquery

May 16, 2016 pm 04:59 PM
plugin jquery 延迟加载

如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来。通过这个插件,可以在需要显示图片的时候,才下载图片,从而可以减少服务器的压力,提高页面加载速度。

Lazy Load 插件原理

修改目标img元素的src属性为orginal属性,从而中断图片的加载。检测滚动状态,然后把网页可视区域中的img的src属性还原然后加载图片,从而制造了一种缓冲加载的效果。代码引入方法:

复制代码 代码如下:




但是现在,很多Javascript大牛分析得出,这个插件其实并没有真正的起到缓加载的作用。确实是这样,官方也已经给出了说明和解决方法了。

其实原因就在于在新版的浏览器中,即使我们删除了Javascript控制的src属性,浏览器仍然会去加载这个图像。

那么我们该怎么解决呢?其实也很简单,需要直接修改HTML的结构,在img标签中添加新的属性,把src属性的值指向占位图片,添加data-original属性,让其指向真正的图像地址。比如:

复制代码 代码如下:

jquery插件lazyload.js延迟加载图片的使用方法_jquery

当然,在上面的代码中我们把页面内的所有图片都延迟加载了,但有些时候我们并不希望这样,因为有些图片并不想然他们延迟加载,那么我们可以这样只需做:

如只缓冲加载类main下的图像

复制代码 代码如下:

$(".main img").lazyload({
     placeholder : "images/grey.gif",
     effect      : "fadeIn"
});

加载挂载有lazy类的图像:

复制代码 代码如下:

$("img.lazy").lazyload({
     placeholder : "images/grey.gif",
     effect      : "fadeIn"
});

其他的以此类推,适当做一下选择器调整就行了。

lazyload.js 高级使用方法:

下面部分来自官方文档,将官方文档进行了一下简单的翻译。

更周全的做法

我们不得不思考这样一个问题。我们定义了这样一个结构,那么网页中,就不会加载源图像了。只有当 Javascript 执行,才会显示这个源图像。如果用户的浏览器不支持或者用户关掉了支持 Javascript 的选项,那么我们的这个图像就无法显示出来。也就是说,如果没有 Javascript 的支持,我们的图像就无法显示出来。

应对这个问题,我们需要引入noscript 标签。大体思路如下:用 noscript 包含真实的图像位置,当浏览器不支持 Javascript,直接显示图像。

复制代码 代码如下:

jquery插件lazyload.js延迟加载图片的使用方法_jquery

对现有图像,隐藏处理,使用 show()方法触发显示。

复制代码 代码如下:

.lazy {
  display: none;
}

这样,如果浏览器不支持 Javascript,我们自定义的 img 就不会出现,而显示 noscript 里面的图像。具体实现代码如下:

复制代码 代码如下:

$("img.lazy").show().lazyload();

提前加载

默认的情况是,当你滚动到图片位置的时候,插件开始加载。这样,用户可能首先看到的是一个空白图像,然后再缓慢出现。如果你想在用户滚动之前,提前加载这个图像,你可以配置一下参数。

复制代码 代码如下:

$("img.lazy").lazyload({
    threshold : 200
});

threshold 这个参数,就是用来提前加载的。上面这个语句的意思是,当距离图片还有200像素的时候,就开始加载图片。

自定义触发事件

默认的触发事件,是滚动,当你滚动的时候,就会检查然后加载。你可以使用event属性,设置你自己的加载事件,之后你可以自定义触发这个事件的条件,然后去加载图像。

复制代码 代码如下:

$("img.lazy").lazyload({
    event : "click"
});

自定义显示效果

默认的图片实现效果,就是没有效果,下载完成之后,直接显示出来。这样的用户体验并不好,你可以设置effect属性,来控制显示图片的效果。例如

复制代码 代码如下:

$("img.lazy").lazyload({
    effect : "fadeIn"
});

fadeIn的效果就是,改变图片的透明度,渐现的方式出现。

把图像插入某个容器

大家如果使用智能手机的话,经常去应用网站下载应用,他们通常使用一个横着的容器,放一些手机截图。使用container属性,能很轻松在容器中实现缓冲加载。首先,我们需要用css定义这个容器,然后用这个插件进行加载。

复制代码 代码如下:

#container { height: 600px; overflow: scroll; }
$("img.lazy").lazyload({
    container: $("#container")
});

加载不可见图像

有部分图像是不可见的,我们对其加上类似 display:none;等属性的图像。默认的情况下,这个插件是不会加载隐藏的不可见图像。如果我们需要用它加载不可见图像,我们需要将 skip_invisible设置为false,代码如下:

复制代码 代码如下:

$("img.lazy").lazyload({
    skip_invisible : false
});

好了,这就是lazyload.js这款插件的简单介绍了。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est l'architecture et le principe de fonctionnement de Spring Data JPA ? Quelle est l'architecture et le principe de fonctionnement de Spring Data JPA ? Apr 17, 2024 pm 02:48 PM

SpringDataJPA est basé sur l'architecture JPA et interagit avec la base de données via le mappage, l'ORM et la gestion des transactions. Son référentiel fournit des opérations CRUD et les requêtes dérivées simplifient l'accès à la base de données. De plus, il utilise le chargement paresseux pour récupérer les données uniquement lorsque cela est nécessaire, améliorant ainsi les performances.

Quelle est la signification originale des liens dynamiques et des liens statiques sous Linux ? Quelle est la signification originale des liens dynamiques et des liens statiques sous Linux ? Feb 05, 2024 pm 05:45 PM

Comme d'habitude, posons quelques questions : Pourquoi les liens dynamiques ? Comment faire des liens dynamiques ? Qu’est-ce que la technologie de code indépendante de l’adresse ? Qu’est-ce que la technologie de liaison retardée ? Comment créer des liens explicites pendant l'exécution du programme ? Pourquoi des liens dynamiques ? L'émergence des liens dynamiques vise à résoudre certains défauts des liens statiques : économie de mémoire et d'espace disque : comme le montre la figure ci-dessous, Program1 et Program2 contiennent deux modules, Program1.o et Program2.o respectivement, et ils nécessitent tous deux la bibliothèque Lib. o module. Dans le cas d'une liaison statique, les deux fichiers cibles utilisent le module Lib.o, ils ont donc des copies dans les fichiers exécutables Program1 et program2 générés par le lien et exécutés en même temps.

Conseils d'optimisation des performances Java JPA : faites voler votre application Conseils d'optimisation des performances Java JPA : faites voler votre application Feb 19, 2024 pm 09:03 PM

Mots-clés de l'article : Optimisation des performances JavaJPA Gestion des entités ORM JavaJPA (JavaPersistance API) est un framework de mappage objet-relationnel (ORM) qui vous permet d'utiliser des objets Java pour exploiter les données dans la base de données. JPA fournit une API unifiée pour interagir avec les bases de données, vous permettant d'utiliser le même code pour accéder à différentes bases de données. De plus, JPA prend également en charge des fonctionnalités telles que le chargement paresseux, la mise en cache et la détection des données sales, qui peuvent améliorer les performances des applications. Cependant, si elles sont mal utilisées, les performances JPA peuvent devenir un goulot d'étranglement pour votre application. Voici quelques problèmes de performances courants : Problème de requête N+1 : lorsque vous utilisez des requêtes JPQL dans votre application, vous pouvez rencontrer des problèmes de requête N+1. Dans ce genre de

Comment empêcher l'événement de chargement d'iframe Comment empêcher l'événement de chargement d'iframe Feb 19, 2024 am 08:02 AM

Comment empêcher les événements de chargement d'iframe Dans le développement Web, nous utilisons souvent des balises iframe pour intégrer d'autres pages ou contenus Web. Par défaut, lorsque le navigateur charge une iframe, l'événement de chargement est déclenché. Cependant, dans certains cas, nous pouvons souhaiter retarder le chargement d'une iframe, ou empêcher complètement l'événement de chargement. Dans cet article, nous explorerons comment y parvenir à travers des exemples de code. 1. Retarder le chargement de l'iframe Si vous souhaitez retarder le chargement de l'iframe, nous pouvons utiliser

Que faire si l'image HTML est trop grande Que faire si l'image HTML est trop grande Apr 05, 2024 pm 12:24 PM

Voici quelques façons d'optimiser les images HTML trop volumineuses : Optimiser la taille du fichier image : Utilisez un outil de compression ou un logiciel de retouche d'image. Utilisez des requêtes multimédias : redimensionnez dynamiquement les images en fonction de l'appareil. Implémentez le chargement différé : chargez l'image uniquement lorsqu'elle entre dans la zone visible. Utilisez un CDN : distribuez des images sur plusieurs serveurs. Utiliser un espace réservé pour l’image : affichez une image d’espace réservé pendant le chargement de l’image. Utiliser des vignettes : affiche une version plus petite de l'image et charge l'image en taille réelle en un clic.

Comment Hibernate optimise-t-il les performances des requêtes de base de données ? Comment Hibernate optimise-t-il les performances des requêtes de base de données ? Apr 17, 2024 pm 03:00 PM

Les conseils pour optimiser les performances des requêtes Hibernate incluent : l'utilisation du chargement différé pour différer le chargement des collections et des objets associés ; l'utilisation du traitement par lots pour combiner les opérations de mise à jour, de suppression ou d'insertion ; l'utilisation du cache de deuxième niveau pour stocker les objets fréquemment interrogés en mémoire à l'aide de connexions externes HQL ; , récupérer les entités et leurs entités associées ; optimiser les paramètres de requête pour éviter le mode de requête SELECTN+1 ; utiliser des curseurs pour récupérer des données massives en blocs ; utiliser des index pour améliorer les performances de requêtes spécifiques.

Décoder les goulots d'étranglement des performances de Laravel : les techniques d'optimisation entièrement révélées ! Décoder les goulots d'étranglement des performances de Laravel : les techniques d'optimisation entièrement révélées ! Mar 06, 2024 pm 02:33 PM

Décoder les goulots d'étranglement des performances de Laravel : les techniques d'optimisation entièrement révélées ! Laravel, en tant que framework PHP populaire, offre aux développeurs des fonctions riches et une expérience de développement pratique. Cependant, à mesure que la taille du projet augmente et que le nombre de visites augmente, nous pouvons être confrontés au défi des goulots d'étranglement en matière de performances. Cet article approfondira les techniques d'optimisation des performances de Laravel pour aider les développeurs à découvrir et à résoudre les problèmes de performances potentiels. 1. Optimisation des requêtes de base de données à l'aide du chargement différé d'Eloquent Lorsque vous utilisez Eloquent pour interroger la base de données, évitez

Recommandations de projets open source Java JPA : Injectez une nouvelle vitalité à votre projet Recommandations de projets open source Java JPA : Injectez une nouvelle vitalité à votre projet Feb 20, 2024 am 09:09 AM

Dans le domaine de la programmation Java, JPA (JavaPersistence API), en tant que framework de persistance populaire, offre aux développeurs un moyen pratique d'exploiter des bases de données relationnelles. En utilisant JPA, les développeurs peuvent facilement conserver les objets Java dans la base de données et récupérer les données de la base de données, améliorant ainsi considérablement l'efficacité et la maintenabilité du développement d'applications. Cet article sélectionne soigneusement 10 projets open source JavaJPA de haute qualité, couvrant une variété de fonctions et de scénarios d'application différents, dans le but de fournir aux développeurs plus d'inspiration et de solutions pour les aider à créer des applications plus efficaces et plus fiables. Ces projets incluent : SpringDataJPA : springDataJPA est Spr

See all articles