插件———弹框

场景:弹出提示信息;可添加提示信息

pop-layer.js

/**
 * Created by AAA on 2017/9/21.
 */
var popLayer = {
    init (option) {
        this.initOptions(option);
        this.initElement(option);
        document.getElementsByClassName("close-btn")[0].onclick = () => {
            this.closeLayer()
        };
        this.ensuerFunc();
        this.cancelFunc();
    },
    option: {
        title: "提示",            //弹窗标题
        state: "success",        //状态
        text: "",                //文本
        showCancel: false,           // 显示取消按钮
        ensuerFunc: "",              //确定按钮  回调
        cancelFunc: "",              //取消按钮  回调
        ensuerText: "确定",     //确定按钮文本
        cancelText: "取消",       //取消按钮文本
    },
    initOptions(option){
        option = Object.assign(this.option, option);
    },
    closeLayer(){
        document.getElementsByClassName("ldj-hint-ball-windows")[0].parentNode.removeChild(document.getElementsByClassName("ldj-hint-ball-windows")[0]);
    },
    ensuerFunc(){
        document.getElementsByClassName("ensuer")[0].onclick = () => {
            return this.option.ensuerFunc();
        };
    },
    cancelFunc(){
        document.getElementsByClassName("cancel")[0].onclick = () => {
            return this.option.cancelFunc();
        };
    },
    initElement(option){
        var ele = `
                    <div class="ldj-win-cont">
                        <div class="ldj-cont-title">
                            <span class="ldj-title-text">${this.option.title}</span>
                        </div>
                        <div class="close-btn">
                               ×
                        </div>
                        <div class="ldj-ball-detail">
                            <div class="hint-icon-box">
                                ${this.option.state}
                            </div>
                            <div class="hint-text">
                                <span class="text">${this.option.text}</span>
                            </div>
                        </div>
                        <div class="ldj-ball-btn">
                            <span class="hand cancel behavior" style="display: ${this.option.showCancel === false ? "none" : ""}">
                                ${this.option.cancelText}
                            </span>
                            <span class="hand ensuer behavior">${this.option.ensuerText}</span>
                        </div>
                    </div>
                    `;
        var createElement = document.createElement("div");
        createElement.className = "ldj-hint-ball-windows";
        createElement.innerHTML = ele;
        document.body.appendChild(createElement);
    },
};

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>弹框</title>
    <link rel="stylesheet" href="pop-layer.css">
</head>
<body>
<button>弹框</button>
<script src="polyfill-objectAssign.js"></script>
<script src="pop-layer.js"></script>
<script>
    document.getElementsByTagName("button")[0].onclick = function () {
        var layerOptions = {
            title: "提示",            //弹窗标题
            state: "error",        //状态
            text: "測試文字",                //文本
            showCancel: true,           // 显示取消按钮
            ensuerFunc: ensuerFunc, //确定按钮  回调
            cancelFunc: cancelFunc, //取消按钮  回调
            ensuerText: "确定",     //确定按钮文本
            cancelText: "取消",       //取消按钮文本
        };
        popLayer.init(layerOptions);
    };
    var ensuerFunc = () => {
        popLayer.closeLayer();
        console.log("ensuerFunc");
    };
    var cancelFunc = () => {
        popLayer.closeLayer();
        console.log("cancelFunc");
    }
</script>
</body>
</html>

工作中使用的版本要考虑兼容ie8,有需要自己改。样式自己决定吧

时间: 2024-08-25 23:38:05

插件———弹框的相关文章

vue自定义插件-弹框

<template> <transition name="msgbox"> <div v-if="show" class="msgbox-container" :class="className"> <header>{{title}}</header> <div class="content-body"> <div>弹出内容

自己写的基于bootstrap风格的弹框插件

自己写的一款基于bootstrap风格的弹框插件,暂时只有确认框.提示框.后续功能扩展.bug修改再更新. ;(function($){ //默认参数 var PARAMS; var DEFAULTPARAMS = { width: 500, title: '提示消息', content: '', okbtn: '确定', cancelbtn: '取消', headerBackground: 'info', vbackdrop: 'static', //默认点击遮罩不会关闭modal vkeyb

自己封装一个弹框插件

弹出层提示信息,这是移动前端开发中最常见的需求,你可能会想到一些流行的弹框插件,比如 经典的artDialog 炫酷的Sweetalert等等.. 但是慢慢地你其实会发现通常情况下需求定制化要求较高,一般的弹框插件可能只满足大部分要求,自定义花的时间还不如手动自己封装一个符合自己开发习惯的弹框组件,这样后续开发效率将大大提高. 首先整理一下思路,原生javascript其实是有实现alert()方法的,但是那个会暂时性中断程序运行,并且足以让你丑拒!那么抛开这些细细一想,其实弹框就是两个div层

做一个弹框玩玩,顺便熟悉最近新学习的插件封装技术

先上图,没图不成席 [原因]由于公司从开发到现在时间都比较紧张,很多时候需要弹框的地方都直接用alert().confirm().prompt()这些自带的提示框,最大的问题是这三个哥们随着浏览器的不同进行变色,简直是前端变色龙,神奇又无奈 所以,这次和我们的帅气设计师合作总结出这三种提示框,我也通过最近的学习把新学到手的封装技术,融入了进去,相对于大神级别的人,看看就行,顺便指点一下就更好了 [目前自己思考的问题]到目前为止,自己工作也有2.5年了,早早过了只知道实现需求的时候了,更多的是培养

3种常用IOS弹框

目前为止,已经知道3种IOS弹框: 1.系统弹框-底部弹框 UIActionSheet (1)用法:处理用户非常危险的操作,比如注销系统等 (2)举例: UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"确定要注销?" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"确定" otherButton

移动端(H5)弹框组件--简单--实用--不依赖jQuery

俗话说的好,框架是服务与大家的,包含的功能比较多,代码多.在现在追求速度的年代.应该根据自己的需求去封装自己所需要的组件. 下边就给大家介绍一下自己封装的一个小弹框组件,不依赖与jQuery,代码少,适用于一般移动端小项目. 这个插件名称:MobileUi 包含功能:弹框,正在加载,tips1.5秒消失,清除正在加载. 如图:    接下来我来告诉大家怎么用吧!! 第一步:配置<meta name="viewport" content="width=device-wid

Bootstrap3.0学习教程十七:JavaScript插件模态框

这篇文章中我们主要来学习一下JavaScipt插件模态框.在学习模态框之前,我们先来了解一下JavaScript插件吧. JavaScript插件概览 插件可以单个引入(使用Bootstrap提供的单个*.js文件),或一次性全部引入(使用bootstrap.js或压缩版的bootstrap.min.js). 不要将两份文件全部引入 bootstrap.js和bootstrap.min.js同样是包含了所有插件.区别是:一个没有压缩,一个进行了压缩. 插件之间的依赖 某些插件和CSS组件依赖于其

jquery EsayUi 里一个小弹框

网站后台大多的数据展示就都用和此插件有着密切的关系: 来用一下这个小弹框吧: 一个Html里面的代码 <link rel='stylesheet' type='text/css' href='css/easyui.css' /><link rel='stylesheet' type='text/css' href='css/icon.css /><script type='text/javascript' src='js/jquery.easyui.min.js'>&l

JS浏览器的三种弹框:

1.alert:使用alert弹框提示信息,最后都会被转化为字符串输出(因为调用了toString这个方法).比如alert(1+1)弹出的结果应该是字符串形式的"2". 2.Confirm:在alert基础上增加了让用户选择性的操作(提供两个按钮:确定和取消) 比如:var  delin = confirm('你确定要删除吗?'); 这一句,当用户点击确定按钮的时候,我们接受到的结果是true,点击的是取消按钮的时候,我们接受到的结果是false,此后我们可以根据不同的结果做不同的处