博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js封装toast组件——常用工具函数
阅读量:6381 次
发布时间:2019-06-23

本文共 3240 字,大约阅读时间需要 10 分钟。

以下是封装的代码

/** * 用原生 JS 封装一个 Toast 组件 */var Toast = {    // 隐藏的 setTimeOut 引用    hideTimeOut: null,    /**     * 初始化     */    init: function () {        var toastNode = document.createElement('section');        toastNode.innerHTML = '111';        toastNode.id = 'toastWaka'; // 设置id,一个页面有且仅有一个Toast        toastNode.setAttribute('class', 'toast');   // 设置类名        toastNode.style.display = 'none';   // 设置隐藏        document.body.appendChild(toastNode);    },    /**     * 显示Toast     * @param text 文本内容     * @param type 类型 success error     * @param duration 持续时间     */    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');   // 成功图标        var domIconError = domToastWaka.querySelector('.icon-error');   // 错误图标        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';        // 不传的话默认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样式设置

/*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

转载地址:http://dwhqa.baihongyu.com/

你可能感兴趣的文章
Linux内核中__init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等作用
查看>>
leetcode -- Two Sum
查看>>
Windows多线程
查看>>
C语言局部变量和全局变量问题汇总
查看>>
android 下的网络图片加载
查看>>
Paip.语义分析----情绪情感词汇表总结
查看>>
Linux下软件安装,卸载,管理
查看>>
View Programming Guide for iOS_读书笔记[正在更新……]
查看>>
排查VMWare虚拟机的性能问题
查看>>
yum安装Apache Web Server后各个文件存放位置
查看>>
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
查看>>
Android于JNI调用列出的程序
查看>>
CSS3-border-radius 属性
查看>>
解决Activity启动黑屏和设置android:windowIsTranslucent不兼容activity切换动画的问题
查看>>
C#开发SQLServer的Geometry和Geography存储
查看>>
EBS R12.2应用层关闭脚本的执行过程
查看>>
js:深闭包(范围:上)
查看>>
使用POI导入小数变成浮点数异常
查看>>
司机福利!Uber即将可以自己选目的地接单啦!
查看>>
MOGODB REDIS
查看>>