Vue3 使用vant actionBar组件后对icon图标的点击切换效果/点击收藏/取消收藏

制作收藏的点击收藏、取消收藏的图标切换效果

 效果:

vue:

<template>
  <van-action-bar>
    <van-action-bar-icon icon="chat-o" text="客服" color="#ee0a24" />
    <van-action-bar-icon icon="cart-o" text="购物车" to="/cart"/>
    <van-action-bar-icon icon="star-o" text="收藏" @click="handelCollectAdd" />
    <van-action-bar-button type="warning" text="加入购物车" @click="handelCartAdd"/>
    <van-action-bar-button type="danger" text="立即购买" />
  </van-action-bar>
</template>

 js 代码:点击切换效果

let status = true
const p = document.getElementsByClassName('van-action-bar-icon')
const handelCollectAdd = () => {
  if (status) {
    status = false
    // console.log(p[2].childNodes[0])
    p[2].childNodes[0].classList.replace('van-icon-star-o', 'van-icon-star')
    p[2].childNodes[1].data = '已收藏'
    console.log(p)
  } else {
    status = true
    p[2].childNodes[0].classList.replace('van-icon-star', 'van-icon-star-o')
    p[2].childNodes[1].data = '收藏'
  }
}

根据类名获取元素 getElementsByClassName,得到数组,根据数组下标找到‘收藏’的位置,打印输出找到:

同时看到控制该图标的样式:

所以,p[2].childNodes[0] 找到需要修改的icon图标,使用html新增classList 操作类名,

  • classList.replace( oldClassName,newClassName );
    类名替换

css:

:deep(.van-icon-star:before) {
  content: '\e727';
  color: #ff5000;
}
:deep(.van-icon-star-o:before){
  content: '\e722'
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值