码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vue3.0 实现图片延迟加载 自定义属性


    根目录下创建文件 directive.js

    1. export default function directive(app) {
    2. // 图片延迟加载
    3. let ob = new IntersectionObserver(changes => {
    4. changes.forEach(item => {
    5. let {
    6. target, // 被观察的目标元素,是一个 DOM 节点对象
    7. isIntersecting // 目标元素是否显示
    8. } = item;
    9. if (!isIntersecting) return;
    10. target.$imgBox.src = target.$src;
    11. target.$imgBox.style.opacity = 1;
    12. ob.unobserve(target); // 取消对某个目标元素的观察
    13. });
    14. }, {
    15. threshold: [0.5] // 当目标元素和根元素相交的面积占目标元素面积的百分比到达或跨过某些指定的临界值时就会触发回调函数
    16. });
    17. app.directive('lazyimg', {
    18. mounted(el, binding) {
    19. let imgBox = el.querySelector('img');
    20. if (!imgBox) return;
    21. imgBox.src = '';
    22. imgBox.style.opacity = 0;
    23. imgBox.style.transition = 'opacity .3s';
    24. el.$src = binding.value;
    25. el.$imgBox = imgBox;
    26. ob.observe(el); // 观察某个目标元素
    27. }
    28. });
    29. };

    main.js中进行使用 

    1. import {
    2. createApp
    3. } from 'vue';
    4. import App from './App.vue';
    5. import router from './router';
    6. import store from './store';
    7. import directive from './directive';
    8. const app = createApp(App);
    9. app.use(router);
    10. app.use(store);
    11. directive(app);
    12. app.mount('#app');

    使用 Home.js

    1. <div
    2. class="wrap-img"
    3. v-if="item.list_image_url"
    4. v-lazyimg="item.list_image_url"
    5. >
    6. <img src="" alt="" />
    7. div>

  • 相关阅读:
    把excel文件内容转化为json文件
    鸿蒙HarmonyOS实战-Web组件(基本使用和属性)
    目的:ubuntu配置使用opengl - 初探-创建一个空窗口
    【LeetCode-74】搜索二维矩阵
    OriginTrail平行链通过XCM与Moonbeam集成
    【老生谈算法】matlab实现遗传算法学习和全局化算法——遗传算法
    EA&UML日拱一卒 总目录
    C 语言左移位操作在kernel驱动子系统中的特殊用途
    微信小程序实现堆叠式轮播
    MySQL进阶1:基础查询
  • 原文地址:https://blog.csdn.net/qq_37548296/article/details/126182979
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号