【问题标题】:Replace image with placeholder on src change在 src 更改时用占位符替换图像
【发布时间】:2020-01-03 16:01:02
【问题描述】:

我有一个带有绑定 src 值的图像

<img :src="image.url">

image.url 更新时,旧图像会保留在原位,直到加载新图像。这看起来有点奇怪,因为新图像滞后于文本细节的变化。

src 属性随 vue.js 变化时,如何用加载指示器替换图像?

我可以使用触发更改并且有效的代码添加 DOM 操作,但我宁愿使用 vue 绑定正确地做到这一点。

【问题讨论】:

  • 网址如何/在哪里改变

标签: vue.js


【解决方案1】:

这应该会让你走上正轨:

  1. 在您的data() 函数中有一个imageLoading 属性。
  2. 如下设置你的:src:&lt;img :src="imageLoading ? ./myPlaceholder.png : image.url" /&gt;
  3. $watch 你的 image.url 来设置加载图片,只要它改变:
watch: {
  'image.url': function() {
    this.imageLoading = true;
  }
  1. 在您的 img 标签中添加一个@load 处理程序,以便在图像加载时将 imageLoading 设置为 false:&lt;img :src="imageLoading ? ./myPlaceholder.png : image.url" @load="imageLoading = false" /&gt;

注意@load 处理程序 - 无耻地从this question 窃取,它确实链接到一个示例。

【讨论】:

  • @load 真的是我需要的!谢谢,我可以完成这项工作。
  • 很高兴为您提供帮助。编码愉快!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-20
  • 1970-01-01
  • 2017-09-11
相关资源
最近更新 更多