前端js弹出框组件使用方法


Posted in Javascript onAugust 24, 2020

下面分享一个js 弹出窗, 分 toast , dialog , load 三种弹窗 , 下面用js css 来实现以下:

首先是js代码 | 采用了 es6 的写法

//公共弹窗加载动画

const DIALOG_TOAST = '1',
 DIALOG_DIALOG = '2',
 DIALOG_LOAD = '3',

class Dialog {

 constructor(type = DIALOG_DIALOG,
  dialogContent = '请求失败',
  wrapClassName = 'common-dialog-wrap',
  dialogWrapClassName = 'common-dialog-content-wrap',
  contentClassName = 'common-dialog-content',
  btnClassName = 'common-btn',
  btnContent = '确定') {


 this.type = type;

 //吐司
 if (type == DIALOG_TOAST) {
  this.dialog = document.createElement('div');
  this.dialog.className = 'common-toast';
  this.dialog.innerHTML = dialogContent;

 }
 //加载动画
 else if (type == DIALOG_LOAD) {
  this.dialog = document.createElement('div');
  this.dialog.className = wrapClassName;
  this.figure = document.createElement('figure');
  this.figure.className = 'common-loadGif';
  this.img = document.createElement('img');
  this.img.src = getAbsolutePath() + '/fenqihui/static/bitmap/travel/loadgif.gif';
  this.figure.appendChild(this.img);
  this.dialog.appendChild(this.figure);

 } else if (type == DIALOG_DIALOG) {
  this.dialog = document.createElement('div');
  this.dialog.className = wrapClassName;
  this.dialogWrap = document.createElement('div');
  this.dialogWrap.className = dialogWrapClassName;
  this.conetent = document.createElement('p');
  this.conetent.innerHTML = dialogContent;
  this.conetent.className = contentClassName;
  this.confirmButton = document.createElement('p');
  this.confirmButton.innerHTML = btnContent;
  this.confirmButton.className = btnClassName;
  this.dialogWrap.appendChild(this.conetent);
  this.dialogWrap.appendChild(this.confirmButton);
  this.dialog.appendChild(this.dialogWrap);
  this.bindEvent();
 }


 }


 bindEvent() {
 this.confirmButton.addEventListener('click', ()=> {
  this.hide();
 })
 }

 show(time) {
 document.querySelector('body').appendChild(this.dialog);
 $(this.dialog).css('display', 'block');

 if (this.type == DIALOG_TOAST) {

  setTimeout(()=> {
  $(this.dialog).css('display', 'none');
  }, time);
 }

 }

 hide() {
 $(this.dialog).css('display', 'none');
 }

}

css 文件如下:

/*公共弹窗*/
.common-dialog-wrap {
 position: fixed;
 background: rgba(0,0,0,.7);
 z-index: 100;
 height: 100%;
 width: 100%;
 top: 0;
}

.common-dialog-content {
 height: 2rem;
 border-bottom: 1px solid #ccc7c7;
 line-height: 2rem;
 text-align: center;
 font-size: .65rem;
}

.common-btn {
 text-align: center;
 height: 2rem;
 color: orange;
 line-height: 2rem;
}

.common-dialog-content-wrap{
 background: #fff;
 width: 10rem;
 height: 4rem;
 border-radius: 5px;
 position: fixed;
 left: 0;
 top:0;
 right: 0;
 bottom: 0;
 margin: auto;
}

/*吐司样式*/
.common-toast{
 height: 1.6rem;
 width: 4rem;
 box-sizing: content-box;
 color: #fff;
 padding: 0 10px;
 position: fixed;
 left: 0;
 top:0;
 bottom: 0;
 right: 0;
 text-align: center;
 line-height: 1.6rem;
 margin: auto;
 background: rgba(0,0,0,.7);
 border-radius: 2rem;
}

.common-loadGif{
 height: 4rem;
 width: 4rem;
 position: fixed;
 top:0;
 left: 0;
 bottom: 0;
 right: 0;
 margin: auto;
}

.common-loadGif img{
 height: 100%;
 width: 100%;
 border-radius: 10px;
}

使用方式

new Dialog(DIALOG_DIALOG).show() | hide()
new Dialog(DIALOG_LOAD).show() | hide()
new Dialog(DIALOG_TOAST).show(time : number) | hide()

效果如下

前端js弹出框组件使用方法

前端js弹出框组件使用方法

前端js弹出框组件使用方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS取文本框中最小值的简单实例
Nov 29 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
JavaScript来实现打开链接页面的简单实例
Jun 02 Javascript
javascript实现根据汉字获取简拼
Sep 25 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 Javascript
gulp构建小程序的方法步骤
May 31 Javascript
element form 校验数组每一项实例代码
Oct 10 Javascript
vue父子模板传值问题解决方法案例分析
Feb 26 Javascript
javascript实现前端分页效果
Jun 24 Javascript
vue使用video插件vue-video-player详解
Oct 23 Javascript
Taro小程序自定义顶部导航栏功能的实现
Dec 17 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
完美解决JS文件页面加载时的阻塞问题
Dec 18 #Javascript
教你一步步用jQyery实现轮播器
Dec 18 #Javascript
Angular.js实现注册系统的实例详解
Dec 18 #Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
Dec 18 #Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 #Javascript
纯js实现悬浮按钮组件
Dec 17 #Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
Dec 17 #Javascript
You might like
ThinkPHP中的三大自动简介
2014/08/22 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
JavaScript触发器详解
2007/03/10 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
JavaScript实现京东放大镜效果
2019/12/03 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python深入学习之装饰器
2014/08/31 Python
利用python实现数据分析
2017/01/11 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
降低python版本的操作方法
2020/09/11 Python
表达自我的市场:Society6
2018/08/01 全球购物
酒店办公室文员岗位职责
2013/12/18 职场文书
校园安全演讲稿
2014/05/09 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
推广普通话主题班会
2015/08/17 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
详解Spring事件发布与监听机制
2021/06/30 Java/Android
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript