vue之神奇的動態按鈕

發表於2019-05-14

今天我們將利用vue的條件指令來完成一個簡易的動態變色功能按鈕

 

首先我們還是要對vue進行配置,在上篇隨筆中有相關下載教學.

然後我們要在html頁面上搭建三個簡易的按鈕,顏色分別為紫,綠和藍(顏色隨意)其程式碼如下:

<body>
<div id="app">
    <p>
        <button @click="btn_click('pg1')"  :style="{background:'rebeccapurple'}"></button>
        <button @click="btn_click('pg2')" :style="{background:'yellowgreen'}"></button>
        <button @click="btn_click('pg3')" :style="{background:'cornflowerblue'}"></button>
    </p>
</div>
</body>

這裡的@是v-on事件指令,在這裡要在三個按鈕上設定點選事件

接著我們要進行條件指令的判斷,其程式碼如下:

        <div class="box pg1" v-if="pg == 'pg1'" key="pg1"></div>
        <div class="box pg2" v-else-if="pg == 'pg2'" key="pg2"></div>
        <div class="box pg3" v-else key="pg3"></div>

通過條件來判斷點選不同的按鈕觸發不同的效果

接下來我們將進行掛載點,事件的渲染以及為事件提供實現體操作

<script>
    new Vue({
        el: '#app',
        data: {
            pg: 'pg1'
        },
        methods: {
            btn_click: function (pg_num) {
                this.pg = pg_num
            }
        }
    })
</script>

這裡我們設定進入頁面後預設顯示第一個按鈕顯示的圖片,通過點選來完成事件的轉換.

最後就是把圖片給設定出來啦

    <style>
        .box {
            width: 200px;
            height: 100px;
            background-color: darkgray;
        }
        .pg1 { background-color: rebeccapurple; }
        .pg2 { background-color: yellowgreen; }
        .pg3 { background-color: cornflowerblue; }
    </style>

  當然也可以選擇你喜歡的圖片進行放置,這裡我們只是放置顏色填充的框

具體的實現效果如下:

  通過不同的點選來獲得不同的圖片!

整體程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box {
            width: 200px;
            height: 100px;
            background-color: darkgray;
        }
        .pg1 { background-color: rebeccapurple; }
        .pg2 { background-color: yellowgreen; }
        .pg3 { background-color: cornflowerblue; }
    </style>
</head>
<body>
<div id="app">
    <p v-if="is_if" key="my_if">v-if的顯示與隱藏</p>
    <p v-show="is_show" key="my_show">v-show的顯示與隱藏</p>
    <p>
        <button @click="btn_click('pg1')"  :style="{background:'rebeccapurple'}"></button>
        <button @click="btn_click('pg2')" :style="{background:'yellowgreen'}"></button>
        <button @click="btn_click('pg3')" :style="{background:'cornflowerblue'}"></button>
        <div class="box pg1" v-if="pg == 'pg1'" key="pg1"></div>
        <div class="box pg2" v-else-if="pg == 'pg2'" key="pg2"></div>
        <div class="box pg3" v-else key="pg3"></div>
    </p>
</div>

</body>
<script src="js/vue.min.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            is_if: false,
            is_show: true,
            pg: 'pg1'
        },
        methods: {
            btn_click: function (pg_num) {
                this.pg = pg_num
            }
        }
    })
</script>
</html>
View Code

 

這樣神奇的動態Vue按鈕便完成啦

 

相關文章