vue3利用JS切换背景图

VUE3利用JS切换背景图实践记录

需要实现的功能:鼠标移入移除图标切换(在这只做移入展示)

新建一个读取图片的函数,如下

// 动态读取图片
function getImageUrl(name: string) {
  return new URL(`../assets/images/product-icon/${name}.png`, import.meta.url).href;
}

完成如上,就可以在模板中读取项目中的静态资源了,如下所示:

 <span @mouseenter="changeIcon($event, '这里需要填写切换的图标名字')" :style="{ 'backgroundImage': 'url(' + getImageUrl(menuItem.icon) + ')' }"></span>
 //需要给个固定高度才能显示

接下来碰到了一个难题…

我使用,如下

function changeIcon(e: any, menuItem: any) {
  e.target.firstElementChild.style = `backgroundImage:url(${getImageUrl(menuItem.activeIcon)})`
}

根本切换不到图标、我甚至一度怀疑是不是要使用require、谁知到后面把backgroundImage换成background-image图标就出来了,不知道什么原理,评论区有知道的吗?🌚🌚

后续

使用这种方法发现后续如果要添加点击状态的时候,就很不好处理,所以乖乖换回了css背景图- - || ,利用class切换

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值