img 标签 / div 背景图片 默认图片 裂图替代

2 篇文章 0 订阅
img 标签中用默认图片代替没有准备图片的情况及用默认图片代替裂图
< img :src= " list_data.activity.activityImg== '' ? '/static/images/questionnaireLogo1.png' :list_data.activity.activityImg οnerrοr= " this . onerror = '' ; src = '/static/images/questionnaireLogo1.png' " >

:src 不必多说,
onerror 错误事件,裂图是触发 onerror 事件,用默认图片作为 src 的值,但是有一种情况是默认图片也找不到了,有无限错误的风险,因此加上  this . onerror = ‘’ 
在裂图的情况下连默认图片也找不到就作罢 


背景图片的情况:
<div class="div3" :style="{'background-image':'url('+ (item.img===''?defaultLogo:_systemPath+item.img) +')'}"></div>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当图片渲染404时,Vue提供了一种解决方案,即使用`v-bind`指令绑定一个`onerror`事件,当图片加载失败时,触发`onerror`事件,我们可以在该事件中指定一个默认图片地址。具体实现如下: ```html <template> <img v-bind:src="imageUrl" v-bind:onerror="setDefaultImage" /> </template> <script> export default { data() { return { imageUrl: "http://example.com/image.jpg", defaultImageUrl: "http://example.com/default.jpg", }; }, methods: { setDefaultImage(event) { event.target.src = this.defaultImageUrl; }, }, }; </script> ``` 在上面的代码中,我们在`<img>`标签上使用了`v-bind`指令绑定了`src`属性和`onerror`事件。当图片加载失败时,会触发`onerror`事件,并执行`setDefaultImage`方法。`setDefaultImage`方法中,我们将图片的`src`属性修改为默认图片的地址,从而实现了默认图片的显示。 ### 回答2: 在Vue中,当图片渲染404时,可以通过使用v-bind指令和v-on指令来添加默认图片。具体步骤如下: 1. 在Vue组件中,为需要渲染图片img标签添加v-bind指令,将图片链接绑定到一个变量上。例如: ``` <img v-bind:src="imageUrl" v-on:error="handleImageError"> ``` 2. 在data钩子函数中,定义一个默认图片的链接,并将其赋值给imageUrl变量。例如: ``` data() { return { imageUrl: '默认图片链接' } }, ``` 3. 在methods钩子函数中,创建一个名为handleImageError的方法,用于处理图片加载错误。这个方法会在图片加载错误时被触发。例如: ``` methods: { handleImageError() { this.imageUrl = '默认图片链接'; } } ``` 4. 当图片加载错误时,handleImageError方法会被调用,将默认图片的链接赋值给imageUrl变量。这样就能在图片渲染404时显示默认图片。 以上就是在Vue中如何添加默认图片的步骤。通过使用v-bind指令将图片链接绑定到变量上,并在v-on指令中添加一个错误处理方法,即可实现在图片渲染404时显示默认图片的功能。 ### 回答3: 在Vue中,当image图片加载失败时,可以通过添加默认图片来替代展示。 首先,在data中定义一个默认图片的URL地址: ```javascript data() { return { defaultImageUrl: '/path/to/default-image.png' } } ``` 然后,在<img>标签中使用v-bind指令绑定一个属性,使用三元表达式来判断图片地址是否为404,如果是则使用默认图片URL: ```javascript <template> <div> <img v-bind:src="imageUrl" v-bind:alt="imageAlt" v-bind:title="imageTitle" /> </div> </template> <script> export default { data() { return { imageUrl: '/path/to/image.png', // 图片地址 imageAlt: 'Image Alt', // 图片alt属性 imageTitle: 'Image Title' // 图片title属性 } }, methods: { handleImageError(event) { if (event.target && event.target.src !== this.defaultImageUrl) { event.target.src = this.defaultImageUrl; } } }, mounted() { this.$nextTick(() => { const image = this.$el.querySelector('img'); if (image) { image.addEventListener('error', this.handleImageError); } }); }, beforeDestroy() { const image = this.$el.querySelector('img'); if (image) { image.removeEventListener('error', this.handleImageError); } } } </script> ``` 在上述代码中,handleImageError()为图片加载错误的回调函数,当图片加载失败时,该函数会将图片的src属性替换默认图片的URL地址。 最后,在mounted钩子函数中,通过querySelector获取到img元素,并给它绑定error事件,在事件触发时执行handleImageError方法。在beforeDestroy钩子函数中,移除error事件的绑定,防止内存泄漏。 这样,当图片加载失败时,会自动替换默认图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值