前端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 25 Javascript
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
Javascript中Array.prototype.map()详解
Oct 22 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
Mar 25 Javascript
javascript中使用new与不使用实例化对象的区别
Jun 22 Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 Javascript
Bootstrap零基础入门教程(三)
Jul 18 Javascript
前端自动化开发之Node.js的环境搭建教程
Apr 01 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
May 11 Javascript
解决js ajax同步请求造成浏览器假死的问题
Jan 18 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
Sep 29 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
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
Bootstrap插件全集
2016/07/18 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
js实现车辆管理系统
2020/08/26 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python装饰器原理与简单用法实例分析
2018/04/29 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
详解python中__name__的意义以及作用
2019/08/07 Python
python代码中怎么换行
2020/06/17 Python
如何通过命令行进入python
2020/07/06 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
自荐信格式技巧有哪些呢
2013/11/19 职场文书
毕业自荐书
2013/12/09 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
教师节座谈会主持词
2015/07/03 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
python实现进度条的多种实现
2021/04/29 Python
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android