如何检查背景图像是否已加载?

2024-03-25

我想在 body 标签上设置背景图像,然后运行一些代码 - 像这样:

$('body').css('background-image','http://picture.de/image.png').load(function() {
    alert('Background image done loading');
    // This doesn't work
});

如何确保背景图像已完全加载?


尝试这个:

$('<img/>').attr('src', 'http://picture.de/image.png').on('load', function() {
   $(this).remove(); // prevent memory leaks as @benweet suggested
   $('body').css('background-image', 'url(http://picture.de/image.png)');
});

这将在内存中创建一个新图像并使用加载事件来检测 src 何时加载。

EDIT:在 Vanilla JavaScript 中,它可以如下所示:

var src = 'http://picture.de/image.png';
var image = new Image();
image.addEventListener('load', function() {
   body.style.backgroundImage = 'url(' + src + ')';
});
image.src = src;

它可以被抽象为返回承诺的方便函数:

function load(src) {
    return new Promise((resolve, reject) => {
        const image = new Image();
        image.addEventListener('load', resolve);
        image.addEventListener('error', reject);
        image.src = src;
    });
}

const image = 'http://placekitten.com/200/300';
load(image).then(() => {
   body.style.backgroundImage = `url(${image})`;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查背景图像是否已加载? 的相关文章

  • npm 脚本:node-sass 不监视部分 sass 文件

    我有这个项目结构 src assets css sass main scss variables scss 我正在尝试编写一个 npm 脚本 该脚本将监视我的所有 scss 文件 包括部分文件 中的更改 然后仅编译我的 main scss
  • 是否可以用 json 进行表达式/计算?

    我使用出色的 json server 作为应用程序的后端 它对于访问自定义端点以检索一些数据非常有用 但是如果它允许我进行计算 表达式以便我也可以模仿后端行为 那将会非常有用 以这个数据结构为例 products name football
  • 任何人都知道 JQuery 插件可以生成类似于 geni.com 上的树形菜单

    大家好 我花了几个小时寻找一个 Jquery 插件来生成像 geni com 上那样的树形菜单模块 如果有人知道 Jquery 中的这样的插件或脚本 请让我知道或指导我如何使用 Jquery 开发这样的功能 请检查我正在寻找什么http w
  • 如何获取调用函数的“this”值?

    如果我有一个这样的函数 function foo this console log this function bar bar prototype func function foo this var test new bar test f
  • 避免 AngularJS 部分视图在 IE 中缓存

    我正在开发一个 ASP NET MVC 应用程序 它也有一些 angularJS 我有一个主页 其中有不同的选项卡 当您单击它们时 它们会加载角度部分视图 主页是这样的 div class widget div div class widg
  • 日期时间的自定义 JavaScriptConverter?

    我有一个对象 它有一个 DateTime 属性 我想通过 AJAX JSON 将该对象从 ashx 处理程序传递回网页 我不想使用第 3 方控件 当我这样做时 new JavaScriptSerializer Serialize DateT
  • Firefox OS 后台服务

    我想构建一个应用程序 用户可以通过它输入一些设置 并且应用程序将启动后台服务来根据这些设置执行一些任务 我只想在模拟器中运行应用程序和后台服务 我知道它需要 认证 模式才能运行后台服务 但我现在不考虑在 Firefox Marketplac
  • HTML if 语句在 CDN 失败时加载本地 JS/CSS

    当从 CDN 或任何外部服务器加载 CSS JS 文件时 有可能 即使概率很低 由于外部故障而丢失该文件 在这种情况下 html 页面将因缺乏适当的 CSS 和 JS 而被损坏 有没有一种实用的方法可以在 CDN 故障时加载本地版本 IF
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • JavaScript - 这个这个

    String prototype foo String prototype foo bar function How can you reference the grandparent string console log this par
  • 将 javascript 变量发送到服务器端 ASP .NET

    我需要在回发时将 JavaScript 数据传递到服务器端 Exvar jsVariableToPass new Object jsVariableToPass key1 value1 jsVariableToPass key2 value
  • 如何在 svelte 中制作搜索过滤器

    我有两个组件在组件树中距离很远 我对如何在两者之间进行通信存有疑问 我有搜索组件 listItems 和商店 商店 svelte
  • jQuery DataTables 如何应用于 MVC4 中的 AJAX 渲染部分视图?

    我有一个片面的看法 model List
  • 条件顺序仅在 init AngularJS 上执行

    如何在视图初始化时仅运行 orderBy 过滤器一次 我不希望我的列表在运行时被重新排序 li li 使用 orderBy 作为控制器中的过滤器 app controller DemoCtrl scope filter function s
  • jQuery 查找 id 以total 开头的所有li

    我有以下内容 但只想循环 lines 中 id 以total 开头的行 lines li each function 有任何想法吗 Lee lines li id total each function
  • JS中如何过滤多个字符串? [复制]

    这个问题在这里已经有答案了 我希望能够过滤数组中的多个字符串 类型 例如我想过滤类型meat并输入fruit在下面的数据结构中 我想要实现的是过滤数据对象 const data type meat food hamburger type f
  • JavaScript 右移负数

    这是片段 var i 101 console log 101 i toString 2 console log 101 gt gt 1 i gt gt 1 toString 2 var l 101 console log 101 l toS
  • JQuery UI - 无法更改模态对话框中日期选择器中的月份/年份

    Using 日期选择器里面一个模态对话框 不工作更改月份 年份Firefox 19 0 2 中的下拉列表请参阅 http jsfiddle net 469zV 2 http jsfiddle net 469zV 2 HTML div tit
  • 截断段落前 100 个字符并隐藏段落的其余内容,以通过更多/更少链接显示/隐藏其余内容

    我有一个超过 500 个字符的段落 我只想获取最初的 100 个字符并隐藏其余部分 我还想在 100 个字符旁边插入 更多 链接 单击更多链接时 整个段落应显示并编辑文本 更多 到 更少 单击 更少 时 它应切换行为 段落是动态生成的 我无

随机推荐

  • 使用 Backbone 在多个异步 ajax 调用后渲染视图

    我有一个主干视图 我想在 2 个异步调用之后渲染 html initialize function model options team fetch success function collection do some things go
  • Avro 架构中嵌套记录的默认值

    这个问题 答案 如何在 Avro 模式中嵌套记录 https stackoverflow com questions 11764287 how to nest records in an avro schema 澄清了如何嵌套复杂类型 在本
  • 针对 DBPedia 的 SPARQL 查询以获取项目的所有属性值

    我是语义网新手 我想使用 SPARQL 查询从 DBPedia 检索 apple 的所有属性值对 下面我写了查询http dbpedia org sparql http dbpedia org sparql编辑器 但它没有返回任何结果 你能
  • 启动rails服务器时出错[重复]

    这个问题在这里已经有答案了 我最近格式化了我的 Windows 机器并安装了ruby and rubyonrails 当我使用创建新的 Rails 项目时rails new FirstApp它工作正常 但是当我尝试使用启动 Rails 服务
  • 线程的cpu使用率

    如何在c 中获取 net中线程的cpu使用率 Check 如何获取Windows上每个线程的CPU使用率 win32 https stackoverflow com questions 1393006 how to get the cpu
  • VBA for Word 中的查找/替换字符限制解决方法

    我有一个基本的 vbscript 可以在 microsoft word 中查找和替换 但是我无法超过一定数量的字符 我认为是 256 个 我想知道是否有人知道解决这个问题的方法 以下是我正在使用的脚本示例 Sub FixedReplacem
  • iOS5 UINavigationBar 显示提示时背景图像问题

    我正在使用 iOS 5 中的新外观代理来使用背景图像来设计 UINavigationBar 的样式 UINavigationBar appearance setBackgroundImage UIImage imageNamed ZSNav
  • 你能在NSView上设置根层的anchorPoint吗?

    是否可以修改anchorPoint根上的属性CALayer层支持的NSView 我有一个叫做myView似乎每次我设置anchorPoint 它会在下一个运行循环中被覆盖 我正在这样做 NSView myView myView alloc
  • Facebook 点赞:未捕获类型错误:对象 # 没有方法“提供”

    我最近添加了 facebook like 按钮 但以下代码在 chrome 中返回错误 Uncaught TypeError Object has no method provide div div
  • 如何将 Ilist 转换为 ArrayList?

    我可以投吗IList into ArrayList 如果是的话我该怎么办 IList alls RetrieveCourseStudents cf ArrayList a ArrayList alls 那是对的吗 有错误 无法转换类型的对象
  • 如何在文本输入中集中文本

    一个简短的问题 有没有办法在react native中集中文本Textinput 这是 jsx 中的标记
  • 如何使用 Node.js zlib 模块和选项?

    我需要使用 zlib 以极端压缩级别压缩 Node js 中的缓冲区 输出的标头应为 78 DA 除非我遗漏了什么 否则 Node js 文档并没有真正描述如何使用 zlib Deflate 类 它不接受任何参数 http nodejs o
  • wkhtmltopdf 段错误

    我正在尝试将 wkhtmltopdf 放到 virtualbox ed ubuntu 12 04 64 位服务器上 到目前为止还没有运气 存储库中的包想要运行 xserver 和静态版本 wkhtmltopdf google com tes
  • JavaScript - 平滑移动/调整大小

    如何在一段时间内实现对象的平滑调整大小或移动 我应该以小于像素的单位更改对象的位置吗 我目前正在使用 setTimeout 进行计时 是否有比 setTimeout 在一段时间内移动对象更有效的方法 使用 jQuery 怎么样 animat
  • 函数式语言中的多线程? (序言)

    当我的朋友在学校开始学习 Prolog 时 我嘲笑他学习了一门无用的语言 然而 他向我展示了一些我从来不知道可能发生的东西 我想知道这个技术从何而来 技术是这样的 permutation List isAMember X List dele
  • UITableViewCell 复选标记在点击时打开和关闭

    我正在处理表格视图 我希望能够点击每个单元格 点击时 它会在单元格上显示一个复选标记 现在我有一些代码可以实现此功能 checkmarks when tapped func tableView tableView UITableView d
  • FlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API

    好吧 我运行我的程序时没有导入 firebase core firebase auth 和 cloud firestore 我的代码运行得很好 但是我使用 firebase 注册了我的应用程序 它仍然运行得很好 但是一旦我导入Firebas
  • 在 NLTK 3.0 中使用 Wordnet 从 Synset 中提取单词

    前段时间 SO上有人问如何检索给定同义词集的单词列表 https stackoverflow com questions 24664250 how do i print out just the word itself in a wordn
  • 常量字符串将存储在内存中的哪里?

    有时我们在 C 编程中使用这种类型的代码 char p Sam 这里常量字符串 Sam 的地址将被存储在字符指针p中 现在在这里我想问一下 Sam 会存放在哪里 字符串 Sam 通常存储在与全局常量相同区域的全局内存中 但是 如果您这样做
  • 如何检查背景图像是否已加载?

    我想在 body 标签上设置背景图像 然后运行一些代码 像这样 body css background image http picture de image png load function alert Background image