這裡來介紹在 Vue 動態加上 class
一樣先把 Vue 的架構先撰寫出來,而目標是想點擊按鈕時會在 .box 自動加上 rotate 這個 class,再點擊一次時,會自動移除
<div id="app">
<div class="box"></div>
<button class="btn btn-outline-primary">選轉物件</button>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
isTransform: false
}
});
</script>
不同於先前,我們這次在 data 內定義了一個 isTransform 的變數,並先給予 false 的值
<div id="app">
<div class="box" :class="{ 'rotate' : true }"></div>
<button class="btn btn-outline-primary">選轉物件</button>
</div>
動態加上 class 的方式,如上
用 v-bind 綁上 class 屬性,接著裡面用物件的形式 { '要加入的 class 名字' : 判斷式 }
我們先在裡面放置 true 就會發現 .box 已經加上 .rotate 了
<div id="app">
<div class="box" :class="{ 'rotate' : isTransform }"></div>
<button class="btn btn-outline-primary">選轉物件</button>
</div>
如果改成我們的變數 isTransform 就會是 false 的結果,重點在於我們在點擊按鈕的時候要自動切換 true 和 false
這時候在按鈕內就可以增加 click 事件:
<div id="app">
<div class="box" :class="{ 'rotate' : isTransform }"></div>
<button class="btn btn-outline-primary" @click=" isTransform = !isTransform">選轉物件</button>
</div>
上面 isTransform = !isTransform 的意思是指,當為 true 時即改為 false,反之。