• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    vue實現彈框遮罩點擊其他區域彈框關閉及v-if與v-show的區別介紹

    來源:懂視網 責編:小采 時間:2020-11-27 22:06:44
    文檔

    vue實現彈框遮罩點擊其他區域彈框關閉及v-if與v-show的區別介紹

    vue實現彈框遮罩點擊其他區域彈框關閉及v-if與v-show的區別介紹:vue如何簡單的實現彈框,遮罩,點擊其他區域關閉彈框, 簡單的思路是以一個div作為遮罩, 控制其的v-if(v-show)即可, 掌握到技巧既可以任意擴展。 v-if 是直接刪除dom節點, 就是這個div就不存在了 v-show 是控制dom的css樣式設置為 display: n
    推薦度:
    導讀vue實現彈框遮罩點擊其他區域彈框關閉及v-if與v-show的區別介紹:vue如何簡單的實現彈框,遮罩,點擊其他區域關閉彈框, 簡單的思路是以一個div作為遮罩, 控制其的v-if(v-show)即可, 掌握到技巧既可以任意擴展。 v-if 是直接刪除dom節點, 就是這個div就不存在了 v-show 是控制dom的css樣式設置為 display: n

    實現如下

    maskshow來控制控制遮罩的顯示隱藏,綁定一個時間點擊遮罩的時候關閉它

    <div class="mask" v-show="maskShow" @click="setMaskShow">
    </div>

    有一個彈框它的顯示和遮罩一樣,里面有個關閉按鈕也可以關閉彈框,函數里只需要將maskShow值取反即可

    <div class="child" v-show="maskShow">
     <button @click="setMaskShow">關閉</button>
    </div>

    其他方法

    點擊時候觸發該方法, 判斷點的區域

    hidePanel(event) {
     let dom = document.getElementById("child");
     if (dom) {
     if (!dom.contains(event.target)) {
     //這句是說如果我們點擊到了id為child以外的區域
     this.maskShow = false;
     }
     }
    }

    全部代碼如下

    <template>
     <div class="father">
     <div class="mask" v-show="maskShow" @click="setMaskShow"></div>
     <div class="child" id="child" v-show="maskShow">
     <button @click="setMaskShow">關閉</button>
     </div>
     <button @click="setMaskShow">click</button>
     </div>
    </template>
    
    <script>
    export default {
     data: function(){
     return {
     maskShow: false,
     }
     },
     methods: {
     setMaskShow(){
     this.maskShow = !this.maskShow;
     }
     }
    }
    </script>
    
    <style>
    .father{
     width: 100%;
     height: 100%;
    }
    .mask{
     width: 100%;
     height: 100%;
     position: fixed;
     top: 0;
     left: 0;
     background: #000;
     opacity: 0.3;
    }
    button{
     width: 100px;
     height: 40px;
     line-height: 40px;
     text-align: center;
    }
    .child{
     position: fixed;
     width: 400px;
     height: 400px;
     border: 1px solid #ccc;
     text-align: center;
     line-height: 400px;
     top: calc(50% - 200px);
     left: calc(50% - 200px);
     background: #fff;
    }
    </style>

    下面談談 Vue.js 里 v-if 與 v-show 的區別

     在 Vue 項目中,v-if 和 v-show 算是兩個用得很頻繁的指令,很巧的是它倆在表現上也相似,都是動態顯示 DOM 元素。不過既然是兩個不同指令,肯定會有不同的適用場景,帶著好奇,讓我們在 Vue 官方文檔里一探究竟吧~

    對于v-if大家應該不會陌生,不管哪種編程語言都會有 if-else 的流程控制。
    例如,在 Java 中:

    if (condition) {
     //some code here
    } else {
     //some code here, too
    }

    當然在 Vue.js 中,v-if 也是執行這樣的功能。稍有不同的是在 template 中用 v-if 條件渲染一整組,類似地,同時也可使用 v-else 指令來表示 v-if 的 “else塊”:

    <div v-if="Math.random() > 0.5">
    Now you see me
    </div>
    <div v-else>
    Now you don't
    </div>

    另一個用于根據條件展示元素的選項是 v-show 指令,用法大致一樣:

    <h1 v-show=true>Hello!</h1>

    不同的是帶有 v-show 的元素始終會被渲染并保留在 DOM 中。v-show 只是簡單地切換元素的 display 屬性。
    看到這里大家應該對 v-if 與 v-show 的區別有一個簡單的概念了。

    接下來將會為大家詳細介紹兩者的不同:

    v-if 是”真正的”條件渲染,因為它會確保在切換過程中條件塊內的事件監聽器和子組件適當地被銷毀和重建。
    同時 v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變為真時,才會開始渲染條件塊。
    相比之下,v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進行切換。 

    所以一般來說,v-if 具有更高的切換開銷,而 v-show 具有更高的初始渲染開銷。

    因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在運行時條件不太可能改變,則使用 v-if 更好。

    總結

    以上所述是小編給大家介紹的vue實現彈框遮罩點擊其他區域彈框關閉及v-if與v-show的區別介紹,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    vue實現彈框遮罩點擊其他區域彈框關閉及v-if與v-show的區別介紹

    vue實現彈框遮罩點擊其他區域彈框關閉及v-if與v-show的區別介紹:vue如何簡單的實現彈框,遮罩,點擊其他區域關閉彈框, 簡單的思路是以一個div作為遮罩, 控制其的v-if(v-show)即可, 掌握到技巧既可以任意擴展。 v-if 是直接刪除dom節點, 就是這個div就不存在了 v-show 是控制dom的css樣式設置為 display: n
    推薦度:
    標簽: VUE 介紹 if
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 蜜臀精品无码AV在线播放 | 久久国产精品国产自线拍免费| 国产精品日韩欧美久久综合| 国产久热精品无码激情| 亚洲日韩精品无码专区网站| 99久久人人爽亚洲精品美女| 91在线视频精品| 久久精品国产亚洲AV麻豆网站 | 国产精品视频不卡| 国产精品福利一区二区久久| 久久久精品人妻一区二区三区四| 欧美人与动牲交a欧美精品| 国产精品亚洲一区二区在线观看| 国内精品在线视频| 1000部精品久久久久久久久 | 国产精品视频二区不卡| 午夜不卡久久精品无码免费| 免费看污污的网站欧美国产精品不卡在线观看| 亚洲精品自产拍在线观看动漫| 91麻豆精品视频| 国产精品视频色拍拍| 精品日韩亚洲AV无码一区二区三区| 亚洲精品国产成人片| 人妻少妇精品无码专区动漫| 久99久无码精品视频免费播放| 国产精品色视频ⅹxxx | 日本精品久久久中文字幕| 91麻豆精品国产自产在线观看一区 | 亚洲精品WWW久久久久久| 久久国产精品偷99| 精品国产午夜肉伦伦影院| 国产精品久久久久久久午夜片| 国产成人精品日本亚洲专区| 97国产视频精品| 国产精品JIZZ在线观看老狼| 国产2021久久精品| 国产精品一级毛片无码视频| 精品久久久久久久久久久久久久久| 精品91自产拍在线观看| 老司机午夜网站国内精品久久久久久久久 | 拍国产乱人伦偷精品视频|