iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
Modern Web

30天每天寫網站系列 第 10

Day10-舊網站重寫成Vue_1_收合式選單

  • 分享至 

  • xImage
  •  

今天開始來把這個我第一個網站寫成vue版本
https://sweetyue9045.github.io/first/
因為我才剛開始學Vue所以不確定會用幾天幾篇文
也不確定有沒有真正精簡…..反正,先來試試看吧!!
先寫首頁的按鈕
點擊中間的大圓會出現小按鈕
這邊用checkbox做開關,打開時出現按鈕,關掉時按鈕隱藏

先把功能做出來再去排版

<div id="app">
    <input type="checkbox" v-model="menu_open"/>
    <a :class="{'item_open': menu_open}">
        <i class="fas fa-home" id="itemH"></i>
    </a>
</div>

用vue的v-model抓取checkbox的狀態,當checkbox被打勾時,幫a加上改變顏色的class
並在script中把預設狀態打好

<script>
    var app = new Vue({
        el: '#app',
        data: {
            menu_open: false
        }
    })
</script>

https://i.imgur.com/iF4Mhmp.gif

然後幫input加上一個id,並新增一個label用for="input的id"與input綁定

<label for="menu-check">
    <div>Taichung <br />BRT | 303 | BUS</div>
</label>

https://i.imgur.com/7rVc6o2.gif
最後把input設置display: none; 隱藏起來,就把中間menu的漢堡選單功能做好了
https://i.imgur.com/pd7ic0h.gif

然後把其他的按鈕跟CSS設置好,就完成收合式選單的部分了(可以搭配按鈕分身術使用)
https://i.imgur.com/wJgIXOv.gif

這邊當初在寫這個網站時,還不夠熟練,是在CSS中去寫如果checkbox打開,每個按鈕要做什麼樣子的變化,整個是非常冗長的程式碼
https://i.imgur.com/hKe8Dbt.gif
現在用vue直接去抓取checkbox狀態並做新增刪除class的話,只要寫這樣就足夠了
https://ithelp.ithome.com.tw/upload/images/20210925/20141991nCxYWmD3Ei.jpg

在重寫的過程中剛好可以去看到之前寫的一些CSS或HTML非常多餘的部分,一邊寫新東西,一邊也能去改善舊的東西

重寫比想像中困難,明天繼續吧…


上一篇
Day9-滾動視差(下)_後有圖樣
下一篇
Day11-舊網站重寫成Vue_2_json抓取資料與渲染
系列文
30天每天寫網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言