vue中如何窗體加載的時候,讓第一個li標籤字體呈現紅色,點擊後讓點擊的li標籤字體變爲紅色

在這裏主要用了vue的v-bind綁定class屬性來改變。
在這裏插入圖片描述
代碼:
方法一:

<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>Document</title>
		<style type="text/css">
			ul li {
				/* 鼠標移上去,添加小手樣式 */
				cursor: pointer;
			}

			/* 元素綁定的class樣式 */
			.active {
				color: red;
			}
		</style>
	</head>

	<body>
		<div id="app">
			<ul>
				<!-- <h2 :class="{key1:value1, key2:value2}">{{name}}</h2> -->
				<li v-for="(item,index) in movie" @click="change(index)" :class="{ active:index === i }">{{ item }}</li>
			</ul>
		</div>
		<script src="./node_modules/vue/dist/vue.js"></script>
		<script type="text/javascript">
			new Vue({
				el: '#app',
				data() {
					return {
						i: 0,
						movie: ['老友記', '尋夢環遊記', '肖申克的救贖', '摩登女王']
					}
				},
				methods: {
					change: function(index){
						console.log(index);
						this.i = index;
					}
				}
			})
		</script>
	</body>

</html>

方法二:
`

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style type="text/css">
		ul li {
			/* 鼠標移上去,添加小手樣式 */
			cursor: pointer;
		}
		/* 元素綁定的class樣式 */
		.active {
			color: red;
		}
	</style>
</head>

<body>
	<div id="app">
		<ul>
			<li v-for='(item,index) in movie' @click="liClick(index)" :class='{ active:currentIndex === index }'>{{ item }}</li>      
			
			<!-- 實現原理 -->
			<!-- <li :class='{ active:0 === index }'></li> 
			<li :class='{ active:1 === index }'></li> 
			<li :class='{ active:2 === index }'></li> 
			<li :class='{ active:3 === index }'></li>  -->
		</ul>
	</div>
	<script src="./node_modules/vue/dist/vue.js"></script>
	<script type="text/javascript">
		var app = new Vue({
			el: '#app',
			data() {
				return {
					// 判斷變紅的數據的索引
					currentIndex: 0, 
					movie: ['尋夢環遊記', '肖申克的救贖', '摩登家庭', '老友記']
				}
			},
			methods: {
				// 元素標籤點擊事件
				liClick(index) {
					this.currentIndex = index; 
				}
			}
		})
	</script>
</body>
`
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章