有没有办法将lazyload js库与Picturefill结合起来?

2023-12-20

我想知道如何将lazyload.js 与Picturefill 合并,当lazyload 的图像语法需要img 标签和原始数据时,而Picturefill 的语法没有这些功能。

例如,这是我使用 Picturefill 对图像的标记:

  <span data-picture data-alt="Operating room 2 stands vacant in Dr. Tariq Mahmood's closed Renaissance Hospital in Terrell, Texas.">
            <span data-src="img/main1_small.jpg"></span>
            <span data-src="img/main1_small_x2.jpg"     data-media="(min-width: 300px) and (min-device-pixel-ratio: 2.0)"></span>
            <span data-src="img/main1_small.jpg"        data-media="(min-width: 300px)"></span>
            <span data-src="img/main1_medium_x2.jpg"    data-media="(min-width: 601px) and (min-device-pixel-ratio: 2.0)"></span>
            <span data-src="img/main1_medium.jpg"       data-media="(min-width: 601px)"></span>    
            <span data-src="img/main1_large.jpg"        data-media="(min-width: 1101px)"></span>                                       

            <!-- Fallback content for non-JS browsers. Same img src as the initial, unqualified source element. -->
            <noscript>
                <img src="img/main1_small.jpg" alt="Operarting room 2 stands vacatn in Dr. Tariq Mahmood's closed Renaissance Hospital in Terrell, Texas.">
            </noscript>
         </span>            

不确定我应该将lazyload.js 所需的类属性放置在图像标签上或数据原始属性的位置。关于如何与 Picturefill 一起实现lazyload.js 的任何想法,或者在保持 Picturefill 的使用的同时延迟加载图像的任何其他方法?


查看这个问题 https://github.com/scottjehl/picturefill/issues/99。评论者 Golodhros 有这样的想法:

根据我的经验,通过不添加 所有图像包装器的数据图片属性。

您可以监听滚动/滑动/选项卡事件并添加数据图片 属性,之后执行 picturefill() 以获得延迟加载 特征。

这也反映在joel_birch 的这条推文 https://twitter.com/joel_birch/status/341197804976369664:

延迟加载图片填充:仅在图像位于时才应用数据图片属性 视口,然后调用 picturefill()。在滚动上重复。真的很简单。

所以基本上,您设置自己的滚动侦听器(或使用库或脚本),并且当每个图片填充范围进入视图时,您添加data-picture属性到它的容器span,然后手动调用window.picturefill()(根据文档,该方法是有意公开在全局命名空间中的)。这将导致图片填充脚本再次运行,此时它将检测新滚动到视图的元素,并对其执行正常操作,下载正确大小的图像。

UPDATE

这是概念证明:http://codepen.io/jonahx/pen/536957770caa3b5e3deb8d96bd421314 http://codepen.io/jonahx/pen/536957770caa3b5e3deb8d96bd421314

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法将lazyload js库与Picturefill结合起来? 的相关文章

随机推荐

  • Visual Studio 代码组织导入功能

    在 Visual Studio Code 1 23 版本中 添加了 组织导入 功能 这是一个非常有用的功能 因为它本身可以处理导入 但我希望能够对其进行配置 我想知道此功能是否可用的功能有 是否可以配置导入的排序顺序 我想在本地导入之前配置
  • Log4Net 不记录或出错

    我一直在尝试在我的 ASP NET Web 应用程序中获取 log4net 日志记录 但没有成功或任何明显的错误 我尝试使用具有以下配置的 ADONetAppender 附加程序
  • OSError:[Errno 24]打开的文件太多 - OS Mojave

    因此 我正在编写一个脚本来获取某个数据集 使用不同的随机种子对其进行 100 次采样 完成所有这些数据集 然后获取平均误差 但是 每当我尝试运行该脚本时 都会出现错误 OSError Errno 24 Too much open files
  • Drupal 通过代码在投票 API 中创建投票

    我正在编写一个自定义模块 我希望它做的部分工作是创建与节点关联的投票 我试图弄清楚如何从我的模块调用投票 API 我查看了文档 但它有点稀疏 这是我不久前编写的模块中的一个示例 while data db fetch object resu
  • EventTrigger 中的条件

    我可以检查事件触发器内的条件吗 我怎样才能只使用 XAML 来做类似的事情
  • 更改 Beaglebone Black 的 USB0 地址?

    我正在尝试更改 BeagleBone Black USB0 端口的静态 IP 地址 我知道这个线程之前已经打开过 更改 Beagle Bone Black USB0 的静态 IP https stackoverflow com questi
  • 在Stata中,如何组合不同宽度的箱线图?

    我正在尝试组合不同大小类别的多个箱线图 这是说明问题的示例 sysuse auto graph box mpg by rep78 rows 1 name g1 replace graph box mpg by foreign rows 1
  • python长度为k的0,1的所有可能组合[重复]

    这个问题在这里已经有答案了 我需要长度为 k 的 0 1 的所有可能组合 假设 k 2 我想要 0 0 0 1 1 0 1 1 我尝试过不同的功能itertools但我没有找到我想要的 gt gt gt list itertools com
  • 使用 Runtime.exec 从 Java 应用程序启动 JVM 进程?

    我希望能够从现有的 java 应用程序启动 Java 服务器进程并监视 stdoutput 和 stderror 并将该输出重定向到文件 是使用 Runtime exec 并将应用程序视为任何其他操作系统进程的最佳方法 还是有更适合新 JV
  • docker 中没有暴露和发布端口的连接

    我有一些中间件在 Docker 容器中运行 当我运行这个中间件时在我的主机上一切正常 当我在docker装有所有必要物品的容器暴露和发布的端口 Dockerfile EXPOSE 5672 15672 1337 1338 5556 3000
  • 网站安全问题

    我正在创建一个使用 perl 脚本 PHP MySQL 数据库和 HTML 的网站 我主要关心的是确保任何人都无法访问任何可以让他们访问我的信息的东西 我的意思是是否有人可以获取我的 perl 脚本并查看我的数据库信息 我了解 sql 注入
  • 如果我已经安装了 Anaconda 发行版并且想要使用其他文本编辑器,我还需要安装 Python 吗?

    我对 Python 和一般编程不太熟悉 过去几个月一直在 Windows 10 上使用 Anaconda 发行版的 Spyder IDE 它非常简单且易于下载和使用 我可以在IDE 让我很容易开始学习Python 我现在对 Python 和
  • Blazor - 当子组件 onclick 事件发生时执行父组件的方法

    我需要它onclick子组件中发生的事件 执行ShowMessage父组件传递的方法message字符串作为参数 以下代码不起作用 儿童剃须刀
  • 删除 NaN“单元格”而不删除整个 ROW(Pandas、Python3)

    现在我有一个这样的DF Word Word2 Word3 Hello NaN NaN My My Name NaN Yellow Yellow Bee Yellow Bee Hive Golden Golden Gates NaN Yell
  • 简单的Java“服务提供者框架”?

    我指的是 服务提供商框架 如中讨论的 这似乎是处理我遇到的问题的正确方法 我需要在运行时实例化几个类之一 基于String选择哪个服务 以及Configuration对象 本质上是一个 XML 片段 但是我如何让各个服务提供商 例如一堆默认
  • 将字符串中的正则表达式转换为 ruby​​ 中的正则表达式对象

    我将正则表达式作为用户的输入 并将值与该正则表达式进行匹配 但是 我遇到的问题是我收到的输入是一个字符串 例如 abc def i 我无法将其转换为正则表达式对象 如果尝试的话Regexp new string 它转义了所有字符 所以我得到
  • POCO 的行为和持久性无知

    根据我的阅读 POCO 类应该是持久性无知的 并且不应该包含对存储库的引用 Q1 鉴于上述情况 我将如何填充 QuestionBlocks 集合 我读过 POCO 应该包含行为 这样你就不会以贫血模型结束 所以我有点困惑 如果没有坚持 应该
  • 获取用户权限列表

    我正在尝试获取用户拥有的所有权限 权限模型 public function roles return this gt belongsToMany App Models Role 好榜样 public function users retur
  • 根据组成员资格使用 Flask-LDAP3-Login 进行身份验证

    我是 Flask 新手 正在尝试 Flask LDAP3 Login 我已按照此处的文档进行操作 并且它可以正常工作 这非常棒 https flask ldap3 login readthedocs io en latest index h
  • 有没有办法将lazyload js库与Picturefill结合起来?

    我想知道如何将lazyload js 与Picturefill 合并 当lazyload 的图像语法需要img 标签和原始数据时 而Picturefill 的语法没有这些功能 例如 这是我使用 Picturefill 对图像的标记 span