您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Vue如何實現動態樣式的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
<text :>hello world </text> <script> export default { data() { return { state: true } } } </script>
2.1 主要運用于:實現循環列表中點擊時,相應的元素高亮;(默認首個元素高亮)
<template> <div class="wrapper" v-for="(item,index) in houseList" :key="index" @click="rightTap(index)"> <div class="houseTitle" :class="{'active' : index === rightIndex}"> {{item.name}} </div> </div> </template> <script> export default { data() { return { rightIndex:0, houseList:[] }; }, methods:{ rightTap(index){ this.rightIndex = index } } } </script> <style lang="scss" scoped> .wrapper{ width: 118px; height: 60px; margin: 6px auto 0 auto; .houseTitle{ font-size: 22px; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .active{ color:#2a7ffa; background-color: pink; } } </style>
2.2 主要運用于:為特定數值設置相應樣式;
<div :class="activeId === item.id?'activeStyle':'machineBar'" v-for="(item,index) in List" :key="index" @click="clickEvent"> <p>{{item.name}}</p> </div>
3.1 主要運用于:為不同的數據值設置相應的樣式;
<template> <div v-for="(item,index) in houseList" :key="index"> <div :>{{item.name}}</div> </div> </template> <script> export default { data(){ return{ houseList:[ { id:1, name:1, status:'a' },{ id:2, name:2, status:'b' },{ id:3, name:3, status:'c' } ] } }, methods:{ getStyle(e){ console.log('值',e) if(e === 'a'){ return { width:'60px', height:'60px', background:'yellow', margin: '10px auto' } }else if(e === 'b'){ return { width:'60px', height:'60px', background:'red', margin: '10px auto' } }else if(e === 'c'){ return { width:'60px', height:'60px', background:'pink', margin: '10px auto' } } } } } </script>
3.2 主要運用于:在元素多從事件下,顯示相應的樣式;
<template> <div class="homeWrap" :class="{'select': selected === 1,'click': clicked === 1}" @click="handleClick(1)" @mousedown="menuOnSelect(1)"> 主頁 </div> </template> <script> export default { return { selected: 0, clicked: 0 } methods:{ menuOnSelect(value){ this.selected = value; }, handleClick(value){ this.selected = 0 this.clicked = value } } } </script> <style lang="stylus" scoped> .homeWrap.select background red .homeWrap.click background yellow </style>
<div :class="[isActive,isSort]"></div> // 數組與三元運算符結合判斷選擇需要的class <div class="item" :class="[item.name? 'lg':'sm']"></div> <div class="item" :class="[item.age<18? 'gray':'']"></div> // 數組對象結合 <div :class="[{ active: isActive }, 'sort']"></div> data() { return{ isActive:'active', isSort:'sort' } } // css .active{ /*這里寫需要設置的第一種樣式*/ } .sort{ /*這里寫需要設置的第二種樣式*/ }
<div :class="classObject"></div> export default { data(){ return{ isActive:true } }, computed:{ classObject() { return{ class_a:this.isActive, class_b:!this.isActive // 這里要結合自身項目情況修改填寫 } } } } // css .class_a{ /*這里寫需要設置的第一種樣式*/ } .class_b{ /*這里寫需要設置的第二種樣式*/ }
感謝各位的閱讀!關于“Vue如何實現動態樣式”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。