成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js封裝toast組件——常用工具函數(shù)

junbaor / 1419人閱讀

摘要:以下是封裝的代碼用原生封裝一個(gè)組件隱藏的引用初始化設(shè)置,一個(gè)頁面有且僅有一個(gè)設(shè)置類名設(shè)置隱藏顯示文本內(nèi)容類型持續(xù)時(shí)間確保上一次的已被清空上一次的還未走完不能為空不存在成功圖標(biāo)錯(cuò)誤圖標(biāo)文字不傳的話默認(rèn)置引用為空隱藏如果存在清空引用

以下是封裝的代碼

/**
 * 用原生 JS 封裝一個(gè) Toast 組件
 */
var Toast = {
    // 隱藏的 setTimeOut 引用
    hideTimeOut: null,
    /**
     * 初始化
     */
    init: function () {
        var toastNode = document.createElement("section");
        toastNode.innerHTML = "111";
        toastNode.id = "toastWaka"; // 設(shè)置id,一個(gè)頁面有且僅有一個(gè)Toast
        toastNode.setAttribute("class", "toast");   // 設(shè)置類名
        toastNode.style.display = "none";   // 設(shè)置隱藏
        document.body.appendChild(toastNode);
    },
    /**
     * 顯示Toast
     * @param text 文本內(nèi)容
     * @param type 類型 success error
     * @param duration 持續(xù)時(shí)間
     */
    show: function (text, type, duration) {
        // 確保上一次的 TimeOut 已被清空
        if (this.hideTimeOut) {
            clearTimeout(this.hideTimeOut);
            this.hideTimeOut = null;
            // console.error("上一次的 TimeOut 還未走完!");
            // return;
        }
        if (!text) {
            console.error("text 不能為空!");
            return;
        }
        var domToastWaka = document.getElementById("toastWaka");
        console.log("domToastWaka", domToastWaka);
        if (!domToastWaka) {
            console.error("toastWaka DOM 不存在!");
            return;
        }
        var domIconSuccess = domToastWaka.querySelector(".icon-success");   // 成功圖標(biāo)
        var domIconError = domToastWaka.querySelector(".icon-error");   // 錯(cuò)誤圖標(biāo)
        var domToastText = domToastWaka.querySelector(".text");   // 文字
        domToastText.innerHTML = text || "";
        switch (type) {
            case "success":
                domIconSuccess.style.display = "inline-block";
                domIconError.style.display = "none";
                break;
            case "error":
                domIconSuccess.style.display = "none";
                domIconError.style.display = "inline-block";
                break;
            default:
                domIconSuccess.style.display = "none";
                domIconError.style.display = "none";
                break;
        }
        domToastWaka.style.display = "block";
        // 不傳的話默認(rèn)2s
        var that = this;
        this.hideTimeOut = setTimeout(function () {
            domToastWaka.style.display = "none";
            that.hideTimeOut = null;    // 置 TimeOut 引用為空
        }, duration || 2000);
    },
    /**
     * 隱藏 Toast
     */
    hide: function () {
        // 如果 TimeOut 存在
        if (this.hideTimeOut) {
            // 清空 TimeOut 引用
            clearTimeout(this.hideTimeOut);
            this.hideTimeOut = null;
        }
        var domToastWaka = document.getElementById("toastWaka");
        if (domToastWaka) {
            domToastWaka.style.display = "none";
            document.body.removeChild(domToastWaka);
        }
    }
};

css樣式設(shè)置

/*toast樣式*/
#toastWaka {
    position: absolute;
    display: none;
    left: 50%;
    bottom: 50%;
    z-index: 99999;
    margin: 0 auto;
    -webkit-transform: translate(-50%);
    transform: translate(-50%);
    width: 120px;
    height:40px;
    line-height: 40px;
    border-radius: 5px;
    text-align: center;
    color: #fff;
    background-color: rgba(000,000,000,0.5);
}

#toastWaka .text{
    color: #fff;
    display: inline-block;
    font-size: 14px;
    position: absolute;
    top:0;
    bottom:0;
    right:0;
    left:0;
}

如何使用




    
    
        toast
    
    
    


    

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101397.html

相關(guān)文章

  • Next框架與主流工具的整合(二)—— 完善與優(yōu)化

    摘要:從概念來說,就是設(shè)備的物理像素與設(shè)備獨(dú)立像素也就是邏輯像素,以下就稱為邏輯像素的比率。通過這個(gè)標(biāo)簽,我們可以實(shí)現(xiàn)初始縮放,就可以達(dá)到的邏輯像素眼睛在設(shè)備上看起來的,換句話說可以在上充滿豎屏的整個(gè)寬度。 前言:18年12月24日項(xiàng)目成功上線了,在經(jīng)歷了兩周的線上bug、UI以及代碼優(yōu)化后,解決了不少問題,于是再完善與優(yōu)化一下這個(gè)項(xiàng)目。 布局優(yōu)化 高清配置 antd-mobile 自定義...

    teren 評(píng)論0 收藏0
  • mpvue開發(fā)小程序所遇問題及h5轉(zhuǎn)化方案

    摘要:騰訊地圖提供的只提供了經(jīng)緯度定位,而產(chǎn)品需要的是確認(rèn)定位后獲取城市,進(jìn)行同城商品檢索阿里云對(duì)象儲(chǔ)存處理文件上傳,比較意外的是騰訊對(duì)阿里云的域名前綴進(jìn)行了封禁后臺(tái)不能配置,解決方案是讓后臺(tái)將該域名進(jìn)行服務(wù)器域名代理。 mpvue開發(fā)小程序所遇問題及h5轉(zhuǎn)化方案 項(xiàng)目結(jié)構(gòu) |---build |---pages.js文件目錄 |---src ...

    big_cat 評(píng)論0 收藏0
  • Vue.extend用法(主要用于需要 動(dòng)態(tài)渲染的組件,或者類似于window.alert() 提示

    摘要:一簡單的使用主要用于需要?jiǎng)討B(tài)渲染的組件,或者類似于提示組件注意創(chuàng)建的是一個(gè)組件構(gòu)造器,而不是一個(gè)具體的組件實(shí)例屬于的全局,在實(shí)際業(yè)務(wù)開發(fā)中我們很少使用,因?yàn)橄啾瘸S玫膶懛ㄊ褂貌襟E要更加繁瑣一些。 最近在重構(gòu)公司的項(xiàng)目,有些組件想要封裝的更靈活,例如toast、loading、messageBox等彈窗組件,模仿了mint-ui封裝此類組件的方式封裝了自己的彈窗組件; mint-UI的t...

    masturbator 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<