前端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 相关文章推荐
IE和FireFox(FF)中js和css的不同
Apr 13 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
Jan 15 Javascript
window.onresize 多次触发的解决方法
Nov 08 Javascript
jquery判断元素的子元素是否存在的示例代码
Feb 04 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
Dec 01 Javascript
浅析JS运动
Dec 28 Javascript
深入理解JQuery中的事件与动画
May 18 Javascript
Jquery on绑定的事件 触发多次实例代码
Dec 08 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
Python判断字符串与大小写转换
2015/06/08 Python
基于python的字节编译详解
2017/09/20 Python
python爬取个性签名的方法
2018/06/17 Python
将python图片转为二进制文本的实例
2019/01/24 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
python hashlib加密实现代码
2019/10/17 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
工程造价自荐信
2013/10/09 职场文书
机械系大学毕业生推荐信
2013/11/27 职场文书
社区十八大感言
2014/01/19 职场文书
十八届三中全会感言
2014/03/10 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
优秀教师单行材料
2014/12/16 职场文书
英语感谢信范文
2015/01/20 职场文书
教师节感谢信
2015/01/22 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python
浅析Python OpenCV三种滤镜效果
2022/04/11 Python