vue v-for渲染列表,前三个元素覆盖蒙版,点击消失

vue v-for渲染列表,前三个元素覆盖蒙版,点击消失

有很多一样的列表,第一二三项上面有个蒙层,点击蒙层消失,显示下面的内容

li span{display:none;}

li.has-mask span{display:block;}

这样的列表有N多个,每个效果都一样,前三名点击蒙版,蒙版消失

<ul>

<li>1<span>蒙版</span></li>

<li>2<span>蒙版</span></li>

<li>3<span>蒙版</span></li>

<li>4</li>

<li>5</li>

<li>6</li>

</ul>

<li 

v-for="(item, index) in list"

:class="{'`has-mask`': index <= 2}"

>

<span @click='hideMask(index)'>蒙版</span>

</li>

现在不知道hideMask方法如何实现?


回答:

<template>

<ul>

<li v-for="(item, index) in list" :class="{'has-mask': item.hasMask}">

{{content}}

<div class="mask" v-if="item.hasMask" @click="hideMask(index)">蒙版</div>

</li>

</ul>

<template>

<script>

export default {

data() {

return {

list: null,

};

},

methods: {

async fetchList() {

const list = await fetch();

this.list = [

...list.slice(0, 3).map(item => ({...item, hasMask: true})),

...list.slice(3),

];

},

hideMask(index) {

this.list[index].hasMask = false;

},

},

}

</script>

以上是 vue v-for渲染列表,前三个元素覆盖蒙版,点击消失 的全部内容, 来源链接: utcz.com/p/936810.html

回到顶部