jq 图片懒加载 + Vue-Lazyload

news2024/11/28 2:43:35

jq原生  图片 懒加载 

<!DOCTYPE html>
<html lang="zh-cn">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
 
<body>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>

    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/QQ截图20230831185438.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/www.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
    <p><img data-url="./assets/logo.png" height="265" alt=""></p>
 
 
    <script src="https://cdn.bootcss.com/jquery/1.8.0/jquery-1.8.0.min.js"></script>
 
 
    <script>
        // 先调用,保证可视区域的图片显示
        lazy();
        function lazy() {
            var imgS = Array.from($('img'));   // 获取页面 img 元素数组
            // console.log(imgS)
            var imgL = $('img').length;  // 获取页面 img 元素数量
            // console.log(imgL)
            var seeHeight = $(window).height();  // 获取页面 可视区域高度
            // console.log(seeHeight)
            var scrollT = $(document).scrollTop();   // 获取页面滚出 高度
            // console.log(scrollT)
            // 开始遍历 这个数组
            for (var i = 0; i < imgL; i++) {
                // console.log($(imgS[i]).offset().top + "  /")
                // console.log(seeHeight + scrollT)
                // 如果当前元素 出现在可视区域后 
                if ($(imgS[i]).offset().top < seeHeight + scrollT) {
                    //如果 当前自定义的 url 不为空
                    if ($(imgS[i]).attr("data-url") !== "undefined") {
                        // 把自定义属性地址 赋值给 img.src 
                        $(imgS[i]).attr("src", $(imgS[i]).attr("data-url"))
                    }
                }
            }
        }
 
    // 用户频繁操作 scroll  不免造成页面性能不佳 此刻当然需要配合 节流 使页面性能更加优化
 
        function throttle(fn, delay) {  // 定义的参数函数和延迟时间
            var begin = new Date();
            return function () {
                var curtimer = new Date();
                var contxt = this,
                    args = arguments;
                if (curtimer - begin > delay) {  // 时间间隔 > 定义时间 才执行
                    fn.apply(contxt, args);
                    begin = curtimer;
                }
            }
        }
        $(document).scroll(throttle(lazy, 100)); // 滚动时间 在100ms 内只执行一次
    </script>
</body>
 
</html>

图片懒加载的原理--三种方法实现_图片懒加载的实现原理-CSDN博客


vue-lazyload 安装插件安装

 

Vue-Lazyload官网: vue-lazyload - npm

Api文档:   IntersectionObserver API 使用教程 - 阮一峰的网络日志 (ruanyifeng.com) 

安装

npm install vue-lazyload --save

# 或者

yarn add vue-lazyload

 main.js

import Vue from 'vue'  
import VueLazyload from 'vue-lazyload'  
  
// 配置项  
const options = {  
  preLoad: 1.3,  
  error: 'dist/error.png', // 图片加载失败时显示的图片  
  loading: 'dist/loading.gif', // 图片加载时显示的图片  
  attempt: 1 // 尝试加载次数  
}  
  
// 使用插件  
Vue.use(VueLazyload, options)

页面

<template>  
  <div>  
    <img v-lazy="imgUrl" />  
  </div>  
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      imgUrl: 'path/to/your/image.jpg'  
    }  
  }  
}  
</script>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1456240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《2024巨量引擎日化行业白皮书》丨附下载

✦ ✦✦ ✦✦ ✦✦ ✦ 中国日化行业在2022年短暂承压之后&#xff0c;随着生活恢复常态&#xff0c;迎来新的发展契机&#xff0c;2023年呈回稳向上态势。以抖音为代表的内容电商是行业增长的主要驱动力&#xff0c;内容场和货架场互通互联&#xff0c;促进行业全域化释放潜能…

从零开始手写mmo游戏从框架到爆炸(十二)— 角色设定

导航&#xff1a;从零开始手写mmo游戏从框架到爆炸&#xff08;零&#xff09;—— 导航-CSDN博客 写了这么多的框架&#xff0c;说好的mmo游戏呢&#xff1f;所以我们暂时按下框架不表&#xff0c;这几篇我们设计英雄角色、怪物、技能和地图。本篇我们来对游戏角色…

解决Webstorm2023使用账号连接GitLab的问题personal access token instead of a password

问题 升级Webstorm之后&#xff0c;发现gitlab仓库拉取代码报错 报错信息 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https…

Docker Desktop 链接windos 安装的redis和mysql

1.1.先在容器安装项目 2.链接redis和mysql配置 redis和mysql是在windos安装的&#xff0c;使用的是小p管理器安装的 项目链接 DB_DRIVERmysql DB_HOSThost.docker.internal DB_PORT3306 DB_DATABASEyunxc_test DB_USERNAMEyunxc_test DB_PASSWORDtest123456... DB_CHARSETutf…

java.sql.SQLException: No operations allowed after statement closed.

背景 某天下午&#xff0c;客服反馈线上服务出现问题&#xff0c;不能分配了。于是我登录到系统上&#xff0c;进行同样的操作发现也不行。当然同时我已经登录到服务器打开了日志&#xff0c;发现报错了&#xff0c;下面就是日志的错误信息&#xff1a; java.sql.SQLExceptio…

【开源】JAVA+Vue.js实现农村物流配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理&#xff1a;2.2.2 位置信息管理&#xff1a;2.2.3 配送人员分配&#xff1a;2.2.4 路线规划&#xff1a;2.2.5 个人中心&#xff1a;2.2.6 退换快递处理&#xff1a;…

Java入门基础语法

文章目录 3.1 字面量3.2 数据类型3.3 变量3.4 变量的案例3.4.1 手机信息描述3.4.2 疫情防控信息采集表 3.5 变量的注意事项3.6 关键字3.7 标识符 来学习 Java 基础语法部分的知识&#xff0c;这些内容是我们后面编写程序的基本功&#xff0c;所以呢&#xff0c;得好好学习&…

C/C++数据结构——剖析排序算法

1. 排序的概念及其运用 1.1 排序的概念 https://en.wikipedia.org/wiki/Insertion_sorthttps://en.wikipedia.org/wiki/Insertion_sort 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的…

MySQL篇之主从同步原理

一、原理 MySQL主从复制的核心就是二进制日志。 二进制日志&#xff08;BINLOG&#xff09;记录了所有的 DDL&#xff08;数据定义语言&#xff09;语句和 DML&#xff08;数据操纵语言&#xff09;语句&#xff0c;但不包括数据查询&#xff08;SELECT、SHOW&#xff09;语句。…

【开源】SpringBoot框架开发教学过程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 教师端2.2 学生端2.3 微信小程序端2.3.1 教师功能如下2.3.2 学生功能如下 三、系统展示 四、核心代码4.1 查询签到4.2 签到4.3 查询任务4.4 查询课程4.5 生成课程成绩 六、免责说明 一、摘要 1.1 项目介绍 基于JAVAVu…

DS:八大排序之归并排序、计数排序

创作不易&#xff0c;感谢三连支持&#xff01;&#xff01; 一、归并排序 1.1 思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子…

序列发生器

一开始想直接FSM&#xff0c;划分出6状态依次输出对应的。但其实只要6比特的移位寄存器&#xff0c;每次输出高位。复位后的默认值时6’b001_011。这样就可以实现循环&#xff0c;这种移位寄存器也叫barrel_shifter。循环移位。也可以使用循环计数器&#xff0c;然后case计数器…

机试指南:3-4章

文章目录 第3章 排序与查找(一) 排序1.sort函数&#xff1a;sort(first,last,comp)2.自定义比较规则3.C函数重载&#xff1a;同一个函数名&#xff0c;有不同的参数列表4.机试考试最重要的事情&#xff1a;能把你曾经做过的题目&#xff0c;满分地做出来5.例题例题1&#xff1a…

找座位 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。 现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位…

全国工商企业名录

全国2023年12月份企业名录2.5亿条

成功交易者需要历经多少磨难才能成就辉煌?

前言 王国维在《人间词话》中说&#xff1a;古今之成大事业、大学问者&#xff0c;必经过三种之境界&#xff1a;“昨夜西风凋碧树&#xff0c;独上高楼&#xff0c;望尽天涯路。” 此第一境也。“ 衣带渐宽终不悔&#xff0c;为伊消得人憔悴。” 此第二境也。“众里寻他千百度…

2023年【四川省安全员B证】最新解析及四川省安全员B证新版试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年四川省安全员B证最新解析为正在备考四川省安全员B证操作证的学员准备的理论考试专题&#xff0c;每个月更新的四川省安全员B证新版试题祝您顺利通过四川省安全员B证考试。 1、【多选题】《建筑施工安全检查标准…

振弦采集仪在地铁隧道振动监测中的应用研究

振弦采集仪在地铁隧道振动监测中的应用研究 河北稳控科技振弦采集仪是一种用于测量振动信号的设备&#xff0c;广泛应用于结构和地铁隧道等工程监测中。在地铁隧道振动监测中&#xff0c;振弦采集仪可以提供以下方面的应用研究&#xff1a; 1. 地铁隧道振动监测&#xff1a;振…

测试演示文档1770532693631507859

测试录入文档 这是一个标题 正文正文 段落1段落2 随机数YY 第二张图 XXXY ct-1708314487159)] XXXY

第十三章[管理]:13.2:venv虚拟环境

一,虚拟环境 1,虚拟环境是什么? venv是Python的一个标准库,用于创建和管理虚拟环境。 虚拟环境是Python的一个隔离空间,在这个空间中, 你可以安装和管理Python包,而不会影响到系统中的其他Python环境。 2,虚拟环境的特点: 隔离性:每个虚拟环境都有自己的Python解释器…