记一次Vue 动态修改body背景图片时图片获取不到的问题

本文探讨了在Vue项目中使用生命周期函数动态设置body背景图的方法,解决了页面切换时背景残留的问题,并分享了利用require函数异步加载资源的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用css设置body背景图,会出现页面切换后,新页面依然显示背景图的问题,所以利用好vue组件的生命周期可以解决这个问题。

但是在利用生命周期函数动态获取背景图片时会出现图片获取不成功的问题。

问题:

在css中设置body背景图,使用相对路径可以设置成功,但是采用生命周期函数相对路径获取图片却获取不到

摸索:

使用网络图片的绝对路径可以设置成功

解决:

使用require('相对路径')解决,具体写法如下:

// 创建前设置
  beforeCreate () {
    const urlPah = require('../../assets/indexBg.jpg')
    document.querySelector('body')
      .setAttribute('style', 'background-repeat:no-repeat;background-size:100%; background-image:url("' + urlPah + '") ')
  },
  // 销毁前清除
  beforeDestroy () {
    document.querySelector('body').removeAttribute('style')
  }

原因:

尚不明确,有可能是body在初始化时,图片资源还未加载所致。使用require可以实现异步加载资源,在获取不到资源时不会阻塞页面加载,待其他资源加载完毕后,再获取资源。纯属猜测,恳请路过的大神批评指点。

参考:

https://www.cnblogs.com/xzybk/p/11726973.html

https://www.php.cn/js-tutorial-420284.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值