用 Vue.js 實(shí)現(xiàn)彈窗

要點(diǎn):

  • 用v-on click 實(shí)現(xiàn)彈窗,類似Semantic UI 當(dāng)中的http://semantic-ui.com/modules/modal.html#/definition Modeal功能,這里要用到v-on click后面接函數(shù)的用法,以及Vue中的methods表達(dá)方法。
  • 彈窗功能需要實(shí)現(xiàn)這個(gè)邏輯,即兩個(gè)觸發(fā):
    • 點(diǎn)擊一個(gè)按鈕,彈框出來
    • 點(diǎn)擊另外一個(gè)地方,彈框消失
  • 與彈窗需要觸發(fā)對應(yīng)的一個(gè)功能是,私密的博客,需要輸入密碼才能看見,在一開始就要運(yùn)行(如刷新這個(gè)操作),而不是點(diǎn)擊觸發(fā)才去運(yùn)行。這里涉及到一個(gè)基礎(chǔ)知識,Vue中的ready,頁面加載好馬上做某事情。

一 基礎(chǔ)知識

v-on click function.png
vue methods.png
Vue ready.png

二 代碼實(shí)戰(zhàn)


先在style標(biāo)簽后面寫一個(gè)黑色遮罩,并做第一個(gè)觸發(fā),出現(xiàn)彈窗之后,點(diǎn)擊背景,彈窗消失。

說明:

  • 其中的v-if="!model.show"是為了配合刷新即現(xiàn)實(shí)訂閱彈窗而寫的代碼。

  • 要想調(diào)用,如fadeIn,需要在semantic UI的基礎(chǔ)上加一個(gè)<link rel="stylesheet" href="css/animate.css" media="screen" title="no title">(可以去animate.css這個(gè)網(wǎng)址找到你想要的動畫效果。)

        <div class="ui dimmer fadeIn active" v-if="!modal.show" v-on:click="modalSwitch">
            <div class="ui modal active">
                <h3 class="ui header">This is a header!</h3>
            </div>
        </div>

然后在Vue中添加一個(gè)modal的對象和modalSwitch的函數(shù)。

        <script>
            var vm = new Vue({
                el:"#app",
                // context
                data:{

                    modal:{
                        show:true,
                    },
                    
                    article:{
                        title:"This is a title",
                        content:"Hi there!",
                        fontSize:18
                    },
                    comments:[
                        {name:"John Doe",said:"Great!",show:true},
                        {name:"John Doe",said:"Great!",show:true},
                        {name:"John Doe",said:"Great!",show:true},
                        {name:"John Doe",said:"Great!",show:true},
                    ]
                },
                methods:{
                    modalSwitch:function () {
                        this.modal.show = !this.modal.show  # this 是JS一個(gè)需要注意的東西,python這實(shí)例化有一個(gè)self,與此類似。

                    }
                },
                ready:function () {
                    this.modalSwitch()
                }
            })
        </script>

做第二個(gè)觸發(fā),在文章后面條件一個(gè)關(guān)注訂閱的按鈕:
<button v-on:click="modalSwitch" class="ui inverted blue button"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 下載安裝搭建環(huán)境 可以選npm安裝,或者簡單下載一個(gè)開發(fā)版的vue.js文件 瀏覽器打開加載有vue的文檔時(shí),控制...
    冥冥2017閱讀 6,193評論 0 42
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,168評論 0 29
  • 2017年,8月27日志。 昨天折騰到兩三點(diǎn)睡覺,原本想多睡會兒,7:30還是醒來了。第一時(shí)間摸兒子的額頭,看維軒...
    藍(lán)朵格格閱讀 263評論 0 1
  • 一、前言 上一篇文章:Weex系列(1)- Weex環(huán)境安裝,了解了Weex的開發(fā)環(huán)境安裝,接下來簡單實(shí)現(xiàn)下Hel...
    chen飛鴻閱讀 1,005評論 0 0
  • 壓抑——最近生活的寫照 這也是我這幾年以來第一次感覺到這種感覺吧 很多事情明明很清楚就是做不了決定 簡單的抉擇 利...
    Even丶閱讀 285評論 0 0

友情鏈接更多精彩內(nèi)容