uniapp开发小程序,点击盒子之外的部分隐藏盒子
时间: 2023-12-11 07:03:07 浏览: 168
在 Uniapp 中实现点击盒子之外的部分隐藏盒子,可以参考以下步骤:
1. 在需要隐藏的盒子上添加一个 `v-show` 指令,用于控制盒子的显示和隐藏。
```html
<template>
<div class="container" @click="onContainerClick">
<div class="box" v-show="isBoxVisible" @click.stop>
<!-- 盒子内容 -->
</div>
</div>
</template>
```
2. 在容器上添加一个 `@click` 事件监听器,用于处理点击容器的事件。同时,在盒子上添加一个 `@click.stop` 事件修饰符,用于阻止点击事件冒泡到容器上。
```html
<template>
<div class="container" @click="onContainerClick">
<div class="box" v-show="isBoxVisible" @click.stop>
<!-- 盒子内容 -->
</div>
</div>
</template>
```
3. 在组件的 `data` 中添加一个 `isBoxVisible` 属性,并将其初始值设置为 `false`,表示盒子默认是隐藏的。
```javascript
export default {
data() {
return {
isBoxVisible: false
}
},
methods: {
onContainerClick() {
// 点击容器时,判断盒子是否已经显示,如果已经显示,则隐藏盒子;否则,显示盒子。
this.isBoxVisible = !this.isBoxVisible;
}
}
}
```
在这个示例代码中,我们首先在需要隐藏的盒子上添加了一个 `v-show` 指令,用于控制盒子的显示和隐藏。然后,在容器上添加了一个 `@click` 事件监听器,用于处理点击容器的事件。在事件处理函数中,我们判断盒子是否已经显示,如果已经显示,则隐藏盒子;否则,显示盒子。同时,我们在盒子上添加了一个 `@click.stop` 事件修饰符,用于阻止点击事件冒泡到容器上。这样,当点击盒子时,不会触发容器的点击事件,从而避免了盒子的显示和隐藏出现异常。
阅读全文