前端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 相关文章推荐
jquery 选择器部分整理
Oct 28 Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 Javascript
jquery 模板的应用示例
Nov 12 Javascript
node.js中的fs.link方法使用说明
Dec 15 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
Aug 20 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
Dec 20 Javascript
jQuery.form插件的使用及跨域异步上传文件
Apr 27 Javascript
jQuery无刷新上传之uploadify简单代码
Jan 17 Javascript
详解javascript常用工具类的封装
Jan 30 Javascript
详解extract-text-webpack-plugin 的使用及安装
Jun 12 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 Javascript
微信小程序实现左侧滑栏过程解析
Aug 26 Javascript
完美解决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
第九节--绑定
2006/11/16 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
JavaScript 创建对象
2009/07/17 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
Python用模块pytz来转换时区
2016/08/19 Python
python实现事件驱动
2018/11/21 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
使用python实现简单五子棋游戏
2019/06/18 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
python groupby 函数 as_index详解
2019/12/16 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
酒店总经理欢迎词
2014/01/15 职场文书
节水倡议书
2015/01/19 职场文书
邀请函格式范文
2015/02/02 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Python echarts实现数据可视化实例详解
2022/03/03 Python