vue實(shí)現(xiàn)記事本案例
本文實(shí)例為大家分享了vue實(shí)現(xiàn)記事本案例的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <html lang="en"> ? <head> ? ? <meta charset="UTF-8"> ? ? <meta http-equiv="X-UA-Compatible" content="IE=edge"> ? ? <meta name="viewport" content="width=device-width, initial-scale=1.0"> ? ? <title>Document</title> ? ? <!-- 引入樣式 --> ? ? <link rel="stylesheet" href="./css/index.css"> </head> ? <body> ? ? <!--? ? ? 1.用戶輸入待辦事項(xiàng),回車后添加到“正在進(jìn)行”,并清空文本框 ? ? ? 2.在“正在進(jìn)行”列表中單擊列表項(xiàng),添加到 已完成 列表 ? ? ? 3.在“已經(jīng)完成”列表中單擊列表項(xiàng),添加到 正在進(jìn)行 列表? ? ? 4.在響應(yīng)列表項(xiàng)中點(diǎn)擊 刪除 ?刪除 該項(xiàng)目。 ? ?--> ? ? <div id="app"> ? ? ? ? <header> ? ? ? ? ? ? <section> ? ? ? ? ? ? ? ? <label for="title"></label> ? ? ? ? ? ? ? ? <input type="text" v-model="thing" placeholder="添加ToDo" required="required" autocomplete="off" @keydown.13="add"> ? ? ? ? ? ? </section> ? ? ? ? </header> ? ? ? ? <section> ? ? ? ? ? ? <h2>正在進(jìn)行<span>{{ongoing.length}}</span></h2> ? ? ? ? ? ? <ol id="todolist" class="demo-box"> ? ? ? ? ? ? ? ? <li v-for="(item,index) in ongoing" :key="item.id"> ? ? ? ? ? ? ? ? ? ? <input type="checkbox" @click="addToDone(index)"> {{item.title}} ? ? ? ? ? ? ? ? ? ? <button @click="delGoing(index)">刪除</button> ? ? ? ? ? ? ? ? </li> ? ? ? ? ? ? </ol> ? ? ? ? ? ? <h2>已完成<span>{{done.length}}</span></h2> ? ? ? ? ? ? <ul id="donelist"> ? ? ? ? ? ? ? ? <li v-for="(item,index) in done" :key="item.id"> ? ? ? ? ? ? ? ? ? ? <input type="checkbox" checked @click="addToGoing(index)"> {{item.title}} ? ? ? ? ? ? ? ? ? ? <button @click="delDone(index)">刪除</button> ? ? ? ? ? ? ? ? </li> ? ? ? ? ? ? </ul> ? ? ? ? </section> ? ? </div> ? ? <footer> ? ? ? ? Copyright © 2021 todolist.cn ? ? </footer> ? ? <script src="../vue.js"></script> ? ? <script> ? ? ? ? new Vue({ ? ? ? ? ? ? el: "#app", ? ? ? ? ? ? data: { ? ? ? ? ? ? ? ? id: 4, ? ? ? ? ? ? ? ? //存儲(chǔ)用戶輸入的信息 ? ? ? ? ? ? ? ? thing: "", ? ? ? ? ? ? ? ? /* 正在進(jìn)行 列表 */ ? ? ? ? ? ? ? ? ongoing: [{ ? ? ? ? ? ? ? ? ? ? id: 1, ? ? ? ? ? ? ? ? ? ? title: "吃飯" ? ? ? ? ? ? ? ? }, { ? ? ? ? ? ? ? ? ? ? id: 2, ? ? ? ? ? ? ? ? ? ? title: "睡覺" ? ? ? ? ? ? ? ? }], ? ? ? ? ? ? ? ? //已經(jīng)完成 列表 ? ? ? ? ? ? ? ? done: [{ ? ? ? ? ? ? ? ? ? ? id: 3, ? ? ? ? ? ? ? ? ? ? title: "打豆豆" ? ? ? ? ? ? ? ? }] ? ? ? ? ? ? }, ? ? ? ? ? ? methods: { ? ? ? ? ? ? ? ? //添加到待辦事項(xiàng) ? ? ? ? ? ? ? ? add() { ? ? ? ? ? ? ? ? ? ? //組裝一個(gè)對(duì)象,將對(duì)象添加到ongoing數(shù)組中。 ? ? ? ? ? ? ? ? ? ? let obj = { ? ? ? ? ? ? ? ? ? ? ? ? id: this.id, ? ? ? ? ? ? ? ? ? ? ? ? title: this.thing ? ? ? ? ? ? ? ? ? ? }; ? ? ? ? ? ? ? ? ? ? //新的對(duì)象產(chǎn)生,id自增,防止id重復(fù)。 ? ? ? ? ? ? ? ? ? ? this.id++; ? ? ? ? ? ? ? ? ? ? /* 把獲取到的值添加到待辦事項(xiàng) */ ? ? ? ? ? ? ? ? ? ? this.ongoing.push(obj); ? ? ? ? ? ? ? ? ? ? //將thing的值設(shè)置為空,則輸入框自動(dòng)清空 ? ? ? ? ? ? ? ? ? ? this.thing = ""; ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? //添加到已經(jīng)完成 ? ? ? ? ? ? ? ? addToDone(index) { ? ? ? ? ? ? ? ? ? ? //將點(diǎn)擊的數(shù)據(jù) 從ongoing 刪除,添加到 Done中 ? ? ? ? ? ? ? ? ? ? //splice(index,1)從index開始,刪除一個(gè)元素。 splice會(huì)返回被刪除的元素組成的數(shù)組。 ? ? ? ? ? ? ? ? ? ? this.done.push(this.ongoing.splice(index, 1)[0]) ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? /* 添加到正在進(jìn)行 */ ? ? ? ? ? ? ? ? addToGoing(index) { ? ? ? ? ? ? ? ? ? ? this.ongoing.push(this.done.splice(index, 1)[0]) ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? /* 從正在進(jìn)行中刪除 */ ? ? ? ? ? ? ? ? delGoing(index) { ? ? ? ? ? ? ? ? ? ? this.ongoing.splice(index, 1) ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? /* 從已經(jīng)完成中刪除 */ ? ? ? ? ? ? ? ? delDone(index) { ? ? ? ? ? ? ? ? ? ? this.done.splice(index, 1) ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? }) ? ? </script> </body> ? </html>
樣式部分
body { ? margin: 0; ? padding: 0; ? font-size: 16px; ? background: #CDCDCD; } ? header { ? height: 50px; ? background: #333; ? background: rgba(47, 47, 47, 0.98); } ? section { ? margin: 0 auto; } ? label { ? float: left; ? width: 100px; ? line-height: 50px; ? color: #DDD; ? font-size: 24px; ? cursor: pointer; ? font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } ? header input { ? float: right; ? width: 60%; ? height: 24px; ? margin-top: 12px; ? text-indent: 10px; ? border-radius: 5px; ? box-shadow: 0 1px 0 rgba(255, 255, 255, 0.24), 0 1px 6px rgba(0, 0, 0, 0.45) inset; ? border: none } ? input:focus { ? outline-width: 0 } ? h2 { ? position: relative; } ? span { ? position: absolute; ? top: 2px; ? right: 5px; ? display: inline-block; ? padding: 0 5px; ? height: 20px; ? border-radius: 20px; ? background: #E6E6FA; ? line-height: 22px; ? text-align: center; ? color: #666; ? font-size: 14px; } ? ol, ul { ? padding: 0; ? list-style: none; } ? li input { ? position: absolute; ? top: 2px; ? left: 10px; ? width: 22px; ? height: 22px; ? cursor: pointer; } ? p { ? margin: 0; } ? li p input { ? top: 3px; ? left: 40px; ? width: 70%; ? height: 20px; ? line-height: 14px; ? text-indent: 5px; ? font-size: 14px; } ? li { ? height: 32px; ? line-height: 32px; ? background: #fff; ? position: relative; ? margin-bottom: 10px; ? padding: 0 45px; ? border-radius: 3px; ? border-left: 5px solid #629A9C; ? box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07); } ? ol li { ? cursor: move; } ? ul li { ? border-left: 5px solid #999; ? opacity: 0.5; } ? li a { ? position: absolute; ? top: 2px; ? right: 5px; ? display: inline-block; ? width: 14px; ? height: 12px; ? border-radius: 14px; ? border: 6px double #FFF; ? background: #CCC; ? line-height: 14px; ? text-align: center; ? color: #FFF; ? font-weight: bold; ? font-size: 14px; ? cursor: pointer; } ? li button{ ? position: absolute; ? right: 10px; ? top: 50%; ? transform: translateY(-50%); } ? footer { ? color: #666; ? font-size: 14px; ? text-align: center; } ? @media screen and (max-device-width: 620px) { ? section { ? ? ?width: 96%; ? ? ?padding: 0 2%; ? } } ? @media screen and (min-width: 620px) { ? section { ? ? ?width: 600px; ? ? ?padding: 0 10px; ? } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue導(dǎo)出頁面為PDF格式的實(shí)現(xiàn)思路
這篇文章主要介紹了Vue導(dǎo)出頁面為PDF格式的實(shí)現(xiàn)思路,其實(shí)思路也很簡(jiǎn)單,就是將頁面轉(zhuǎn)換成圖片格式.然后通過圖片的base64碼.生成PDF..感興趣的朋友跟隨腳本之家小編一起看看吧2018-07-07element上傳組件循環(huán)引用及簡(jiǎn)單時(shí)間倒計(jì)時(shí)的實(shí)現(xiàn)
這篇文章主要介紹了element上傳組件循環(huán)引用及簡(jiǎn)單時(shí)間倒計(jì)時(shí)的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10詳解Vue中是如何實(shí)現(xiàn)cache緩存的
這篇文章分享一個(gè)比較有意思的東西,那就是Vue中如何實(shí)現(xiàn)cache緩存的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-07-07Vue+Axios實(shí)現(xiàn)文件上傳自定義進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Vue+Axios實(shí)現(xiàn)文件上傳自定義進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08vant list組件滾動(dòng)保留滾動(dòng)條位置
這篇文章主要介紹了vant list組件滾動(dòng)保留滾動(dòng)條位置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09vuejs如何解決瀏覽器切換頁面后setInterval計(jì)時(shí)器停止執(zhí)行的問題
setinterval()是定時(shí)調(diào)用的函數(shù),可按照指定的周期(以毫秒計(jì))來調(diào)用函數(shù)或計(jì)算表達(dá)式,這篇文章主要給大家介紹了關(guān)于vuejs如何解決瀏覽器切換頁面后setInterval計(jì)時(shí)器停止執(zhí)行的問題,需要的朋友可以參考下2024-01-01