vue3点击区块,使其高亮显示

在 Vue 3 中点击一个区块并使其高亮显示的实现,可以通过动态绑定 CSS 类来完成。当用户点击某个区块时,使用 Vue 的 v-bind:class:class 动态地改变该区块的样式,从而达到高亮效果

使用 v-bind:class 动态绑定类

假设你有多个区块,点击某个区块时给它添加一个高亮的样式

<template>
  <div class="container">
    <div
      v-for="(block, index) in blocks"
      :key="index"
      :class="{'highlight': selectedBlock === index}"
      class="block"
      @click="selectBlock(index)"
    >
      Block {{ index + 1 }}
    </div>
  </div>
</template>

<script setup>
import { ref } from 'vue';

// 定义区块数据
const blocks = [1, 2, 3, 4, 5];
const selectedBlock = ref(null);  // 当前选中的区块索引

// 点击区块时更新 selectedBlock
const selectBlock = (index) => {
  selectedBlock.value = index;
};
</script>

<style scoped>
.container {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.block {
  width: 100px;
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: lightgray;
  border: 2px solid #ccc;
  cursor: pointer;
}

.highlight {
  background-color: yellow; /* 高亮时的背景色 */
  border-color: red;         /* 高亮时的边框颜色 */
}
</style>
  • v-for: 循环渲染多个区块,每个区块的索引传递给 selectBlock 方法
  • :class="{'highlight': selectedBlock === index}": 动态绑定类名。当 selectedBlock 等于当前区块的索引时,给该区块添加 highlight 类
  • @click="selectBlock(index)": 点击区块时,调用 selectBlock 方法,更新 selectedBlock 的值
  • selectedBlock: 这是一个响应式的变量,用于存储当前选中的区块的索引。
  • highlight: 是一个 CSS 类,在区块被选中时给该区块添加高亮效果(例如改变背景色和边框颜色)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值