html改变按钮样式

今天有人问我怎么改样式,需求是三个按钮,一次点一个,要求被点击的按钮和没被点的按钮是两种不同的样式,如图所示。

最初显示
点击已读

在这里插入图片描述
最初三个按钮都没选如图一,然后点击“已读”按钮,“已读”按钮样式改变。再点击“全部”按钮,“全部”按钮样式改变,“已读”按钮变回原样式。
按钮的html代码如下

<div
      style="justify-content: space-between;width: 20%"
      class="flex-row">
      <button
        id="all"
        class=".white.shadowed shadowed big item"
        @click="refresh(0,'all')">
        全部
      </button>
      <button
        id="unRead"
        class=".white.shadowed shadowed big item"
        @click="refresh(0,'unRead')">
        未读
      </button>
      <button
        id="read"
        class=".white.shadowed shadowed big item"
        @click="refresh(0,'read')">
        已读
      </button>
    </div>

这里先说第一种方法

document.getElementById('all').style.fontSize='35px'  //修改字体大小

但是现在要求的样式已经有了,需要直接换class内的名称,将.white.shadowed改为theme-primary,不能单独修改某个属性。经过查询后用来这个方法。

document.getElementById("unRead").setAttribute("class","theme-primary big item")

具体js代码如下,因为点击按钮还有其他需求,所以有参数page用了async,光实现这个功能可以去掉,并在html中去掉page参数。

let refresh = async function (page,isRead) {
    if (isRead == null){
      isRead = "unRead";
    }
    if(isRead==="unRead"){
      document.getElementById("unRead").setAttribute("class","theme-primary big item")
      document.getElementById("all").setAttribute("class",".white.shadowed shadowed big item")
      document.getElementById("read").setAttribute("class",".white.shadowed shadowed big item")
    }
    else if(isRead==="all"){
      document.getElementById("all").setAttribute("class","theme-primary big item")
      document.getElementById("unRead").setAttribute("class",".white.shadowed shadowed big item")
      document.getElementById("read").setAttribute("class",".white.shadowed shadowed big item")
    }
    else{
      document.getElementById("read").setAttribute("class","theme-primary big item")
      document.getElementById("unRead").setAttribute("class",".white.shadowed shadowed big item")
      document.getElementById("all").setAttribute("class",".white.shadowed shadowed big item")
    }
}
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值