vue 动态绑定设置class类型

动态切换tabbar, 内容列表list跟着改变:

<div class="navbar">

<nav class="nav-box clearfix">
<ul class="nav-bar">
<li v-for="(item, index) in itemTab" class="nav-bar-item" :class="{'nav-bar-active': initIndex === index}" @click="changeTab(index)">
   {{item.title}}
</li>
</ul>
</nav>
<section class="scroll-list">
<travel v-for="(item, index) in travelsList" :travel="item" v-show="initIndex == 0"></travel>
<panel v-for="(item, index) in sportsList" :sports="item" v-show="initIndex == 1"></panel>

</section>
<div class="btn-apply" id="drag1" @click="post">
<i class="icon">&#xe67</i>
<span>去发布</span>
</div>
</div>


methods:{
changeTab(index) {
window.scroll(0, 0)
this.initIndex = index
},
post() {
   this.$router.push('/user/post')
}
}






.navbar{
.nav-box{
position:fixed;
top:1rem;
z-index:1;
width:100%;
height:1rem;
line-height:1rem;
text-align:center;
background:white;
.nav-bar{
display:flex;
.nav-bar-item{
flex:1;
font-size:14px;
}
.nav-bar-active{
border-bottom:3px;solid green;
color:green;
}

}
}
.scroll-list{
margin-top:1rem;
background:white;
}
.btn-apply{
position:fixed;
bottom:0.5rem;
right:0.4rem;
width:1.5rem;
height:1.5rem;
line-height:1;
background-color:green;
border-radius:50%;
text-align:center;
z-index:9;
display:block;
font-size:14px;
}

}



https://cn.vuejs.org/v2/guide/class-and-style.html

对象语法

我们可以传给 v-bind:class 一个对象,以动态地切换 class:

<div v-bind:class="{ active: isActive }"></div>
<div class="static"
     v-bind:class="{ active: isActive, 'text-danger': hasError }">
</div>

和如下 data:

data: {
  isActive: true,
  hasError: false
}

结果渲染为:

<div class="static active"></div>

数组语法

我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:

<div v-bind:class="[activeClass, errorClass]"></div>
data: {
  activeClass: 'active',
  errorClass: 'text-danger'
}

渲染为:

<div class="active text-danger"></div>

猜你喜欢

转载自blog.csdn.net/zgpeterliu/article/details/80205683