如何在没有 jQuery 或延迟加载的情况下推迟背景图像

2024-05-12

根据帕特里克·塞克斯顿tutorial https://varvy.com/pagespeed/defer-images.html,我想以与这里相同的方式推迟背景图像img:

<img src="data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="your-image-here">

<script>
function init() {
var imgDefer = document.getElementsByTagName('img');
for (var i=0; i<imgDefer.length; i++) {
if(imgDefer[i].getAttribute('data-src')) {
imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
} } }
window.onload = init;
</script>

我怎样才能使用背景做同样的事情?

<div style="background:url(your-image-here)"></div>

所需的更改只是我们选择元素的方式

document.querySelectorAll('div[data-src]');

以及我们如何设置该值(这里不是设置src属性,我们需要设置style属性)。

EDIT: 我什至会避免attribute在此处检查(在 JavaScript 中),因为我们的选择器会执行此操作。

标记(在此处编辑代码:http://codepen.io/anon/pen/rryxoK http://codepen.io/anon/pen/rryxoK)

function init() {
  var imgDefer = document.querySelectorAll('div[data-src]');
  var style = "background-image: url({url})";
  for (var i = 0; i < imgDefer.length; i++) {

    imgDefer[i].setAttribute('style', style.replace("{url}", imgDefer[i].getAttribute('data-src')));

  }
}

window.onload = init;
.deferImage {
  width: 800px;
  height: 600px;
}
<div class="deferImage" data-src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/96/Domestic-crested-duck-CamdenME.jpg/800px-Domestic-crested-duck-CamdenME.jpg"></div>

EDIT: 按班级名称选择 http://codepen.io/anon/pen/gwmAaW

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

如何在没有 jQuery 或延迟加载的情况下推迟背景图像 的相关文章

随机推荐

  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • CMS:将自定义页面存储为文件或 MySQL 数据库中?

    我正在 PHP 中创建一个自定义 CMS 从头开始编写 并且想知道是否应该将用户创建的页面存储为文件或存储在 MySQL 数据库中 内容全部是 HTML 代码 至少目前是这样 我无法决定该做什么 因为用 php 编写文件似乎存在安全风险 并
  • 如何将模型结果保存到文本文件?

    我正在尝试将从模型生成的频繁项集保存到文本文件中 该代码是 Spark ML 库中 FPGrowth 示例的示例 Using saveAsTextFile直接在模型上写入 RDD 位置而不是实际值 import org apache spa
  • Python3 - 如何将字符串转换为十六进制

    我正在尝试将字符串逐个字符转换为十六进制 但我无法在Python3中弄清楚它 在较旧的 python 版本中 我的以下内容有效 test This is a test for c in range 0 len test print 0x s
  • Azure队列触发器函数未触发

    我用Python设计了一个Azure队列触发器函数 具有以下功能 当一条消息添加到名为 Input 的队列时 该函数会触发 它处理添加到输入队列的消息并将结果存储在输出队列中 现在我的问题是当我在本地运行时这工作正常 但是在部署函数应用程序
  • SDL Tridion 中的关键字路径

    有人可以提供一些关于如何做到这一点的想法吗 这可能非常简单和基础 但我无法弄清楚 这是我的要求 我有一个带有子关键字 B 的类别 A 而 B 有另一个子关键字 C 我想获取组件模板中所选关键字的确切路径 例如 如果用户选择关键字 C 我需要
  • saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

    sabre sd 基于 imx 6 最大内部 RAM 约为 150Kb 然而 uboot 足够大 可以容纳在这个空间中 在这个场景中事情是如何进行的 https community freescale com docs DOC 95015
  • Coq:多个构造函数的单一表示法

    是否可以在 Coq 中为多个构造函数定义单一符号 如果构造函数的参数类型不同 则可以从中推断出它们 一个最小的 非 工作示例 Inductive A Set a b c C gt A d D gt A with C Set c1 c2 wi
  • ASP.Net MVC MvcBuildViews 大幅增加编译时间

    我们有一个项目 希望构建视图 以便在视图的 cshtml 文件中有任何错误时生成编译时错误 尽管如此 编译时间仍然急剧增加 MvcBuildViews true需要 62 秒 MvcBuildViews false需要 9 秒 这是可以接受
  • AVPlayerLooper 每次迭代后黑闪

    我正在使用 Apple 的示例代码在UICollectionViewCell背景 我在用着AVPlayerLooper 因为它是同一视频的迭代 我的问题是 当视频结束时 它会显示轻微的黑屏闪烁 也许它正在将视频搜索到0时间 我不确定 这是代
  • 为什么 Firefox 3.6 改变了 jQuery 和 CSS 属性?

    为什么 Firefox 3 6 改变了 jQuery 和 CSS 属性 好吧 更具体一点 我有一个交叉淡入淡出插件 可以在放置在彼此之上的两个图像之间创建发光效果 该函数 如下所示 将使顶部图像在悬停时在 200 毫秒内转换为不透明度 0
  • 使用成员作为实现者来实现接口

    我有实现 IA 的 A 类 现在我需要创建也应该实现 IA 的类 B B 类有 A 类的实例作为成员 有什么方法可以定义A的实例实现B类中的IA吗 interfase IA void method1 void method2 void me
  • 使用 svn diff 时如何获取无上下文

    当我从命令行使用 svn diff 时 它会打印出已更改的行 以及前后 3 个未更改的行以获取上下文 我更喜欢只看到没有上下文的更改行 我无法确定任何命令行选项可以让我让它以这种方式运行 默认情况下 标准 diff 和 cvs diff 执
  • 为什么奇数的切片容量与偶数的切片行为不同

    我注意到 当容量为奇数时 切片的容量会以不同的方式表现 更具体地说 当向切片添加元素时 切片的容量为doubled当原始容量为偶数时 但当原容量为奇数时 容量为增加一 然后加倍 例子 s make int 28 28 s append s
  • C 中“for”循环中的两个变量

    我正在编写一些代码 需要在其中使用两个变量for环形 下面的代码看起来没问题吗 它确实给了我预期的结果 for loop 1 offset loop 2 offset 2 loop 1 gt offset 190 loop 2 lt 190
  • 为什么 FB.Event.subscribe 会触发?

    是什么导致 FB Event subscribe 事件触发 我知道单击 fb login button 元素可以触发它 但只要创建 Facebook 会话 FB Event subscribe 事件就会触发 当存在 Facebook 会话时
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • 从字符串中删除第一个和最后一个字符

    我有这个 dataList one two three list explode dataList echo pre print r list echo pre 其输出 gt Array gt 0 gt gt 1 gt one gt 2 g
  • 将具有多个时区的 pandas 列转换为单个时区

    Problem 我在 pandas DataFrame 中有一个列 其中包含带有时区的时间戳 此列中有两个不同的时区 我需要确保只有一个 这是该列末尾的输出 260003 2019 05 21 12 00 00 06 00 260004 2
  • 如何在没有 jQuery 或延迟加载的情况下推迟背景图像

    根据帕特里克 塞克斯顿tutorial https varvy com pagespeed defer images html 我想以与这里相同的方式推迟背景图像img img src data image png base64 R0lGO