vue在多个按钮之间切换选中状态

3 篇文章 0 订阅

写了一个简易的按钮切换选择需求,具体的样式都可以自由更改

HTML:

<span class="btn-time" @click="selectTime($event)">02:30~03:00</span>
<span class="btn-time" @click="selectTime($event)">03:30~04:00</span>
<span class="btn-time" @click="selectTime($event)">04:30~05:00</span>
<!--此处只为演示,一般都是动态生成这样的结构-->

data:

beforeTarget:{}    //记录上次点击的按钮

methods:

selectTime(e) {
  //给点击选中的按钮添加选中效果
  e.currentTarget.classList.add("show");
  //判断是否重复点击
  if (e.currentTarget !== this.beforeTarget) {
    //判断,若为第一次点击,则不进行修改
    if (Object.keys(this.beforeTarget).length > 0) {
      this.beforeTarget.classList.remove("show");
    }
    //将上次点击的按钮存储
    this.beforeTarget = e.currentTarget;
  }
}

css:

.btn-time{
  font-size:0.2rem;
  border:1px solid #bbb;
  padding:0.1rem 0.3rem;
  border-radius:0.1rem;
 }
.show{
  background-color:skyblue;
}

效果图如下:

效果图
效果图

 

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue可以通过使用条件渲染和事件绑定来实现多个按钮控制同一个组件,且每个按钮控制展示不同的内容。以下是一个简单的示例: 首先,我们需要创建一个展示内容的组件(Content),该组件根据传入的参数来展示不同的内容。 ```html <!-- Content.vue --> <template> <div class="content"> <div v-if="selectedTab === 'tab1'"> <h2>Tab 1</h2> <p>这是第一个标签页的内容。</p> </div> <div v-else-if="selectedTab === 'tab2'"> <h2>Tab 2</h2> <p>这是第二个标签页的内容。</p> </div> <div v-else-if="selectedTab === 'tab3'"> <h2>Tab 3</h2> <p>这是第三个标签页的内容。</p> </div> </div> </template> <script> export default { props: { selectedTab: { type: String, required: true, }, }, }; </script> <style scoped> .content { margin-top: 20px; } </style> ``` 在父组件中,我们可以使用一个变量来控制当前选中的标签页,并使用不同的按钮切换选中的标签页。 ```html <template> <div> <button @click="selectedTab = 'tab1'">Tab 1</button> <button @click="selectedTab = 'tab2'">Tab 2</button> <button @click="selectedTab = 'tab3'">Tab 3</button> <Content :selectedTab="selectedTab" /> </div> </template> <script> import Content from './Content.vue'; export default { components: { Content, }, data() { return { selectedTab: 'tab1', }; }, }; </script> ``` 在上面的示例中,父组件中有三个按钮,每个按钮通过点击事件绑定的方式来更新selectedTab的值,从而控制Content组件展示不同的内容。 这样,当点击不同的按钮时,selectedTab的值会改变,Content组件会根据selectedTab的值来渲染不同的内容。你可以根据需要添加更多的按钮和对应的内容,或者根据实际需求自定义组件的样式和行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值