利用Vue的v-for和v-bind實(shí)現(xiàn)列表顏色切換
需求:
在頁面上顯示四個(gè)列表,初始時(shí)字體為黑色。
鼠標(biāo)點(diǎn)擊某一個(gè)列表時(shí),該列表的顏色變?yōu)榧t色,其余列表仍為黑色。
代碼實(shí)現(xiàn):
<!-- css -->
<style>
.red{
color: red;
}
</style>
<!-- html -->
<div id="app">
<ul>
<li v-for="item,index in movies" :class="{red: changeRed == index}" v-on:click="change(index)">{{item}}</li>
</ul>
</div>
<!-- JavaScript -->
<script src="../JS/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
movies: ['肖申克的救贖','泰坦尼克號','當(dāng)幸福來敲門','流浪地球'],
changeRed: -1
},
methods: {
change:function (index) {
this.changeRed=index;
}
}
})
</script>
代碼解釋:
首先瀏覽器直接顯示列表,因?yàn)榇藭r(shí)沒有監(jiān)聽到click事件。
當(dāng)鼠標(biāo)點(diǎn)擊某一個(gè)列表時(shí),Vue自動(dòng)獲取列表下標(biāo),并執(zhí)行change(index)函數(shù),改變changeRed的值,此時(shí)當(dāng)前列表的v-bind:class="{red: changeRed == index}"中的red為true,當(dāng)前一項(xiàng)列表顯示為紅色。其余列表的changeRed == index為false,所以不顯示紅色。
補(bǔ)充知識:vue學(xué)習(xí)(綁定class、v-bind:style(對象語法、數(shù)組語法))
vue 屬性綁定
css
.class0{
color: red;
font-size: 10px;
}
.class00{
color: blue;
font-size: 70px;
}
.class2{
color: yellow;
font-size: 30px;
}
.class3{
color: indianred;
}
.class4{
font-size: 30px;
}
1 class綁定
1.1 字符串綁定
<div id="app1"> 可以綁定一個(gè)默認(rèn)class 字符串綁定class <p class="class0" :class="a"> xxxx是字符串 </p> <button @click="updates1"> 點(diǎn)擊</button> </div>
// 1.1 字符串綁定
var a = new Vue({
el:'#app1',
data: {
//綁定默認(rèn)css屬性
a: "class1",
b:"class0",
},
//動(dòng)態(tài)切換css屬性
methods: {
updates1 (){
this.a = 'class2'
}
}
});
1.2 對象綁定 和 數(shù)組綁定
<div id="app2">
對象綁定class
<p :class="{class2:isA,class00:isB}"> xxxx是對象 例如 :class="{class2:isA,class00:isB}"</p>
<button @click="updates2"> 點(diǎn)擊</button> <br>
數(shù)組綁定class <br>
<p :class="['class3','class4']"> xxxx是數(shù)組 例如 :class="[class3,class4]" </p>
</div>
//1.2 對象綁定
var a = new Vue({
el:'#app2',
data: {
//綁定默認(rèn)css屬性
isA: true,
isB: false,
},
//動(dòng)態(tài)切換css屬性
methods: {
updates2 (){
this.isA = false;
this.isB = true;
}
}
});
圖示

點(diǎn)擊后

2 style 綁定
<div id="app3">
<div :style="{ color: activeColor, fontSize: fontSize + 'px' }">Style 綁定1 例如 :style="{ color: activeColor, fontSize: fontSize + 'px' }"</div>
<div :style="objectCssStyle">Style 綁定2(綁定到一個(gè)樣式對象通常更好) 例如 :style="objectCssStyle"</div>
<div :style="[clSty1, clSty2]">Style 綁定3(數(shù)組語法) 例如 :style="[activeColor, fontSize]"</div>
<button @click="updates4"> 點(diǎn)擊</button>
</div>
// 2 style 綁定
var a = new Vue({
el:'#app3',
data: {
//綁定默認(rèn)css屬性
activeColor: 'red',
fontSize: 100,
objectCssStyle:{
color: 'red',
fontSize: '10px'
},
objectCssStyle2:{
color: 'yellow'
},
clSty1: {
color: 'green',
fontSize: '30px'
},
clSty2: {
'font-weight': 'bold'
}
},
//動(dòng)態(tài)切換css屬性
methods: {
updates4 (){
this.activeColor = "blue";
this.fontSize = 20;
this.objectCssStyle = this.objectCssStyle2
}
}
});
圖示

點(diǎn)擊后

以上這篇利用Vue的v-for和v-bind實(shí)現(xiàn)列表顏色切換就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Vue中Class和Style實(shí)現(xiàn)v-bind綁定的幾種用法
- 詳解vue中v-model和v-bind綁定數(shù)據(jù)的異同
- 一文讀懂vue動(dòng)態(tài)屬性數(shù)據(jù)綁定(v-bind指令)
- 詳解vue中v-bind:style效果的自定義指令
- Vue v-bind動(dòng)態(tài)綁定class實(shí)例方法
- vue指令之表單控件綁定v-model v-model與v-bind結(jié)合使用
- vue基礎(chǔ)之v-bind屬性、class和style用法分析
- 淺析Vue.js中v-bind v-model的使用和區(qū)別
- 詳解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
- 在vue中v-bind使用三目運(yùn)算符綁定class的實(shí)例
- 在vue中使用v-bind:class的選項(xiàng)卡方法
- 帶你理解vue中的v-bind
相關(guān)文章
Vue項(xiàng)目部署的實(shí)現(xiàn)(阿里云+Nginx代理+PM2)
這篇文章主要介紹了Vue項(xiàng)目部署的實(shí)現(xiàn)(阿里云+Nginx代理+PM2),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
vue+ElementUI實(shí)現(xiàn)訂單頁動(dòng)態(tài)添加產(chǎn)品數(shù)據(jù)效果實(shí)例代碼
本篇文章主要介紹了vue+ElementUI實(shí)現(xiàn)訂單頁動(dòng)態(tài)添加產(chǎn)品效果實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
vue路由權(quán)限和按鈕權(quán)限的實(shí)現(xiàn)示例
本文主要介紹了vue路由權(quán)限和按鈕權(quán)限的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
詳解關(guān)于Vue2.0路由開啟keep-alive時(shí)需要注意的地方
這篇文章主要介紹了關(guān)于Vue2.0路由開啟keep-alive時(shí)需要注意的地方,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
VUE3+mqtt封裝解決多頁面使用需重復(fù)連接等問題(附實(shí)例)
最近了解到mqtt這樣一個(gè)協(xié)議,可以在web上達(dá)到即時(shí)通訊的效果,下面這篇文章主要給大家介紹了關(guān)于VUE3+mqtt封裝解決多頁面使用需重復(fù)連接等問題的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04

