vue实现图片懒加载
在src中创建一个directives文件夹在里面创建一个lazy.js文件
在main.js中引入
import lazy from './directives/lazy'
app.directive('lazy', lazy)
在app.vue中
<script setup lang="ts">
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
</script><template><div class="img-container"><!-- src是刚开始没有加载出的图片 data-src是加载后的图片,已经进入显示区域的图片 --><!-- v-lazy 懒加载 将它绑的在每个需要懒加载的图片上 --><imgv-lazysrc="https://copyright.bdstatic.com/vcg/creative/cc9c744cf9f7c864889c563cbdeddce6.jpg@h_1280"alt=""class="lazyload"/></div><div class="img-container"><imgv-lazysrc="https://inews.gtimg.com/om_bt/OHyQqgC_5oi4Vm0tlH49XvJzqNBHo2Zryxx5F_be5N2cIAA/1000"alt=""class="lazyload"/></div><div class="img-container"><imgv-lazysrc="https://inews.gtimg.com/om_bt/OHyQqgC_5oi4Vm0tlH49XvJzqNBHo2Zryxx5F_be5N2cIAA/1000"alt=""class="lazyload"/></div><div class="img-container"><imgv-lazysrc="https://inews.gtimg.com/news_bt/OLxGAuCdJ1SwoZRdrZoqGrpBGX-BgYjWnSFuiDDoS3xQsAA/1000"alt=""class="lazyload"/></div><div class="img-container"><imgv-lazysrc="https://img.pconline.com.cn/images/upload/upc/tx/itbbs/2101/25/c1/251135935_1611532823091_mthumb.jpg"alt=""class="lazyload"/></div><div class="img-container"><imgv-lazysrc="https://img2.baidu.com/it/u=4045137561,4227164018&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1280"alt=""class="lazyload"/></div><!-- <RouterView /> -->
</template><style scoped>* {margin: 0;padding: 0;list-style: none;}.lazyload {width: 200px;height: 200px;}@media (min-width: 1024px) {header {display: flex;place-items: center;padding-right: calc(var(--section-gap) / 2);}.logo {margin: 0 2rem 0 0;}header .wrapper {display: flex;place-items: flex-start;flex-wrap: wrap;}nav {text-align: left;margin-left: -1rem;font-size: 1rem;padding: 1rem 0;margin-top: 1rem;}
}
</style>
在lazy.js中
export default {//定义了一个 mounted 方法,在相关组件挂载到页面后执行一些操作,参数 el 通常指的是被挂载的元素。mounted(el) {//查看图片是否被绑的// console.log(el,'这个是el');//将图片保存在src属性上const imgSrc=el.src;//el.src=''; 因为直接进入不加载图片,要将图片清空el.src='';//观察者 观察当前图片是否进入可视区const observer = new IntersectionObserver(([{ isIntersecting }]) => {//元素出现在可视区域,和元素离开可视区域console.log("进入可视区域");//isIntersecting 是 IntersectionObserverEntry 对象的一个属性,它表示目标元素与根元素是否相交。//如果 isIntersecting 的值为 true,则表示目标元素与根元素相交;//如果 isIntersecting 的值为 false,则表示目标元素与根元素不相交。//图片出现在可视区,和图片离开可视区if(isIntersecting){// 加载图片el.src =imgSrc;//停止观察observer.unobserve(el);}});//在进行某种观察或监听操作observer.observe(el);},
};
相关文章:
vue实现图片懒加载
在src中创建一个directives文件夹在里面创建一个lazy.js文件 在main.js中引入 import lazy from ./directives/lazy app.directive(lazy, lazy) 在app.vue中 <script setup lang"ts"> import { RouterLink, RouterView } from vue-router import HelloWorl…...
Python | Leetcode Python题解之第101题对称二叉树
题目: 题解: class Solution:# 在【100. 相同的树】的基础上稍加改动def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:if p is None or q is None:return p is qreturn p.val q.val and self.isSameTree(p.left, q.ri…...
周报5.20~5.26
学习内容: 主要了解了Qt的信号和槽、ui页面布局、各类常见控件的使用、绘图事件以及文件操作的相关知识,并且完成相关案例的设计。练习代码了解了多层感知机、激活函数、多项式回归、高维线性回归、暂退法、分布偏移、深度学习计算等相关知识与代码案例…...
RDP方式连接服务器上传文件方法
随笔 目录 1. RDP 连接服务器 2. 为避免rdp 访问界面文字不清晰 3. 本地上传文件到服务器 1. RDP 连接服务器 # mstsc 连接服务器step1: 输入mstscstep2: 输入 IP, username, passwd 2. 为避免rdp 访问界面文字不清晰 解决方法: 3. 本地上传文件到服务器 step…...
网络信息安全
目录 引言 网络信息安全的基本概念 定义 主要目标 网络信息安全的范围 主要威胁 恶意软件 黑客攻击 拒绝服务攻击 社交工程 内部威胁 常用技术和防护措施 加密技术 防火墙 入侵检测和防御系统 访问控制 多因素认证 安全审计和监控 安全培训和意识提升 未来发…...
java中的对象
文章目录 一、对象的创建过程1.1 检查加载1.2 分配内存1.3 内存空间初始化1.4 设置对象头1.5 对象初始化 二、对象内存布局2.1 布局解析2.2 JOL使用 三、对象的访问定位3.1 句柄访问3.2 直接指针 四、对象的分配策略4.1 栈上分配4.2 优先分配到Eden区4.3 大对象直接进入老年代4…...
【MySQL精通之路】MySQL-环境变量
本节列出了MySQL直接或间接使用的环境变量。 其中大部分也可以在本手册的其他地方找到。 命令行上的选项优先于选项文件和环境变量中指定的值,选项文件中的值优先于环境变量中的值。 在许多情况下,最好使用配置文件而不是环境变量来修改MySQL的行为。…...
Day42 最后一块石头的重量Ⅱ + 目标和 + 一和零
1049 最后一块石头的重量Ⅱ 题目链接:1049.最后一块石头的重量Ⅱ 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和…...
01.爬虫---初识网络爬虫
01.初识网络爬虫 1.什么是网络爬虫2.网络爬虫的类型3.网络爬虫的工作原理4.网络爬虫的应用场景5.网络爬虫的挑战与应对策略6.爬虫的合法性总结 1.什么是网络爬虫 网络爬虫,亦称网络蜘蛛或网络机器人,是一种能够自动地、系统地浏览和收集互联网上信息的程…...
集合、Collection接口特点和常用方法
1、集合介绍 对于保存多个数据使用的是数组,那么数组有不足的地方。比如, 长度开始时必须指定,而且一旦制定,不能更改。 保存的必须为同一类型的元素。 使用数组进行增加/删除元素的示意代码,也就是比较麻烦。 为…...
12. Web开发:介绍Web开发的基本概念,Servlet和JSP的使用,MVC设计模式的应用等。
Web开发的轻松入门之旅 想象一下,Web开发就像是搭建一个在线的小家,你既是设计师,又是建筑师,还是管家。我们一步步来探索这个过程,保证简单易懂,就像搭积木一样有趣! Web开发基础认知 Web开…...
文件系统--inode
文章目录 概述认识磁盘了解磁盘的存储结构对磁盘的存储结构进行逻辑抽象 操作系统对磁盘的使用宏观认识细节认识再谈目录再谈文件的增删 概述 文件有很多,但是被打开的文件很少,这些没有被打开的文件在磁盘中,这就叫做磁盘文件。每次先打开一…...
数据清洗(ETL)案例实操
文章目录 数据清洗(ETL)概述案例需求和分析代码实现和结果分析 数据清洗(ETL)概述 “ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换&…...
Zookeeper 面试题(一)
1. ZooKeeper 适合哪些应用场景? ZooKeeper 是一个高性能、高可靠的分布式协调系统,它在分布式系统和大数据领域中有着广泛的应用。以下是 ZooKeeper 适合的一些应用场景: 数据发布/订阅:ZooKeeper 可以作为配置中心,…...
怎么安装django特定版本
要安装Django的特定版本,你可以使用Python的包管理工具pip。以下是在命令行中安装Django特定版本的步骤: 确保你的计算机上已经安装了Python和pip。如果没有安装,你可以从Python官方网站下载并安装最新版本的Python,pip通常会随Py…...
关于Broken pipe异常的一点学习记录
什么是Broken pipe? pipe,管道,管道里面自然就是数据,通过指从文件或网络套接字读取的数据。当一个进程试图向一个已关闭的管道(pipe)写数据或者从一个已关闭的通道读数据时就会出现中断,也就是Broken pi…...
第十一课,end关键字、简单while循环嵌套、初识for循环
一,end关键字 end关键字用于在print输出的内容后面声明结束的字符,我们之前学过并且十分了解print是默认输出内容之后跟着换行的,如果我们不希望换行而希望使用其它字符来代替换行,就可以用end关键字来实现 特殊的,en…...
spring boot 集成mongodb
引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId><version>2.2.0.RELEASE</version></dependency>配置db: spring:data:mongodb:host: 127.0.…...
从零开始搭建SpringCloud Alibaba微服务架构
Spring Cloud Alibaba是Spring Cloud的一个拓展项目,它用于构建基于阿里巴巴的微服务应用。它提供了多个阿里巴巴的开源组件,如Nacos、Sentinel、Dubbo等,用于解决微服务架构中的服务注册、配置管理、流量控制等问题。 Spring Cloud Alibaba…...
SpringBoot(八)之JdbcTemplate
SpringBoot(八)之JdbcTemplate 文章目录 SpringBoot(八)之JdbcTemplate1.添加依赖项:2. 配置数据库连接3.创建表信息4. 创建数据模型5. 创建 Repository6.测试,创建TestController spring-boot-starter-jdbc 是 Spring…...
OpenWrt旁路由进阶玩法:用iPhone USB网络共享做冗余WAN口,提升家庭网络可靠性
OpenWrt旁路由进阶玩法:用iPhone USB网络共享构建冗余WAN口 当家庭网络的核心设备——主路由器突然宕机时,智能家居离线、视频会议中断、NAS文件无法访问的连锁反应会让人措手不及。而将iPhone的USB网络共享转化为OpenWrt旁路由的备用WAN口,就…...
不止于模拟器:在Windows10上用VS2019+QEMU调试EDK2 UEFI应用的完整流程
从零构建UEFI开发环境:VS2019与QEMU深度整合实战指南 在当今固件开发领域,UEFI已逐步取代传统BIOS成为主流标准。对于开发者而言,搭建一个高效的UEFI开发环境是进行底层系统开发的第一步。本文将带你深入探索如何在Windows10平台上࿰…...
开源工具MelonLoader:Unity游戏模组开发的3大突破与零基础上手指南
开源工具MelonLoader:Unity游戏模组开发的3大突破与零基础上手指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader …...
比迪丽LoRA模型Mathtype式交互:设计公式化提示词编辑器提升创作精度
比迪丽LoRA模型Mathtype式交互:设计公式化提示词编辑器提升创作精度 不知道你有没有过这样的经历:面对一个功能强大的AI绘画模型,比如集成了各种LoRA的比迪丽,脑子里明明有非常具体的画面,但就是不知道该怎么用文字描…...
DoubletFinder实战指南:精准识别单细胞测序中的双细胞干扰
1. 双细胞干扰:单细胞测序中的"隐形杀手" 做单细胞测序分析的朋友们应该都遇到过这种情况:明明细胞分群很清晰,但总有几个"奇怪"的cluster既表达A细胞标志物又表达B细胞特征。这种情况很可能就是遇到了双细胞干扰——两个…...
VisualVM企业级部署指南:大规模Java应用监控最佳实践
VisualVM企业级部署指南:大规模Java应用监控最佳实践 【免费下载链接】visualvm VisualVM is an All-in-One Java Troubleshooting Tool 项目地址: https://gitcode.com/gh_mirrors/vi/visualvm VisualVM是一款功能强大的全合一Java故障排除工具,…...
Z-Image-Turbo_Sugar脸部Lora模型轻量化:基于.NET框架的推理引擎封装
Z-Image-Turbo_Sugar脸部Lora模型轻量化:基于.NET框架的推理引擎封装 最近在做一个C#的桌面工具,需要集成一个AI换脸功能。网上找了一圈,发现Z-Image-Turbo_Sugar这个脸部Lora模型效果不错,但官方只提供了Python的推理脚本。对于…...
Spring Boot中UriComponentsBuilder的5个实用技巧:从URL拼接到底层编码原理
Spring Boot中UriComponentsBuilder的5个实用技巧:从URL拼接到底层编码原理 在对接第三方API时,URL的拼接与编码往往是开发者最容易踩坑的环节之一。Spring Boot提供的UriComponentsBuilder工具,不仅能优雅地处理参数拼接,还能解决…...
OpenClaw技能市场探索:GLM-4.7-Flash加持的10个实用插件
OpenClaw技能市场探索:GLM-4.7-Flash加持的10个实用插件 1. 为什么需要关注OpenClaw技能市场? 当我第一次接触OpenClaw时,最让我惊喜的不是它的基础功能,而是它丰富的技能市场生态。作为一个长期使用各类自动化工具的技术爱好者…...
Z-Image-GGUF开源模型价值:Z-Image原始论文复现支持+GGUF量化技术白皮书同步发布
Z-Image-GGUF开源模型价值:Z-Image原始论文复现支持GGUF量化技术白皮书同步发布 1. 项目核心价值:一次部署,双重收获 如果你正在寻找一个既能体验前沿文生图模型,又能深入了解其底层技术原理的解决方案,那么Z-Image-…...
