在工作中,我们常常会遇到原生的样式感觉比较丑,又和我们做的项目风格不搭。于是就有了仿写原生一些组件的念头,今天我就带大家仿写一下confirm和alert样式都可以自己修改。

有些的不好的地方请指出来,让我们共同成长,如果有不懂的也可以私聊我,我会为你详细解说。

本文有以下三个段落

1.功能代码块展示,弹框功能尺寸适用手机在电脑上看会比较大。

//弹出对话框:传了cancel是confirm,不传就是alert弹框
function Confirm(obj) {
	let _obj = obj || {};
	//视图层
	let div = '<div id="_bj" style="">' +
			'<div id="Kuang" style="">' +
				'<h3 id="Tishi">提    示</h3>' +
				'<span id="_content"></span>' +
				'<div id="_cancel" class="XuanZhe" style="left:0;">取 消</div>' +
				'<div id="_determine" class="XuanZhe" style="right:0;border-left:0.5px solid gainsboro;">确  定</div>' +
			'</div>' +
		'</div>';
	$("body").append(div);

	//css样式层
	$("#_bj").css({
		position:"fixed",
		top:0,left:0,
		textAlign:"center",
		width:"100vw",
		height:"100vh",
		zIndex: 998,
		background:"rgba(0,0,0,.3)",
	});
	$("#Kuang").css({
		position:"absolute",
		textAlign:"center",
		top:"50%",left:"50%",
		transform:"translate(-50%,-50%)",
		width:"900px",
		height:"450px",
		background:"#f8f8f8",
		borderRadius:"20px",
		fontSize:"50px"
	});
	//传入一个选项是alert框,两个是confirm框
	if(_obj.cancel!=""&&_obj.cancel!=null){
		$(".XuanZhe").css({
			position:"absolute",
			textAlign:"center",
			width:"50%",
			color:"#287ae8",
			borderTop:"0.5px solid gainsboro",
			bottom:0,
			lineHeight:"150px"
		});
		$("#_cancel").html(_obj.cancel);
		//交互层
		$("#_cancel").click(function() {
			$("#_bj").remove();
			_obj.callback && _obj.callback(false);
		});
		$("#_determine").click(function() {
			$("#_bj").remove();
			_obj.callback && _obj.callback(true);
		});
	}else{
		$(".XuanZhe").css({
			position:"absolute",
			textAlign:"center",
			width:"100%",
			color:"#287ae8",
			borderTop:"0.5px solid gainsboro",
			borderLeft:"none",
			left:0,
			bottom:0,
			lineHeight:"150px"
		});
		$("#_cancel").hide();
		$("#_determine").click(function() {
			$("#_bj").remove();
			_obj.callback && _obj.callback();
		});
	}
	$("#_determine").html(_obj.determine);
	$("#_content").html(_obj.content || "确定吗");
}

2.代码调用说明

2.1调用时传了cancel,弹出的是confirm

$("#btn").click(function(){
  Confirm({
    content: "确定要删除吗",cancel:"取消",determine:"确定",
    callback: function(res) {//回调函数,返回true,false
      console.log(res);
    }
  });
});


2.2调用时没有传cancel,弹出的是alert
$("#btn").click(function(){
    Confirm({
        content: "你真的喜欢我吗?",determine:"确定",
        callback: function(res) {//回调函数没有返回值
            console.log("喜欢");
        }
    });
});

         

3.希望大家给点优化建议,让它更好的为广大的程序员们服务。

仿写confirm和alert弹框的更多相关文章

  1. selenium对Alert弹框的多种处理

    Alert弹框是一个很烦人的控件,因为当前页面如果弹出了该弹框,你必须要处理它,不然你就不能操作页面的其它元素,下面我列出了alert弹框在多种场景下的处理办法. 明确知道系统哪个地方会弹alert ...

  2. python工具 - alert弹框输出姓名年龄、求和

    使用python自带的tkinter库进行GUI编程,完成两个功能: (1)要求用户输入姓名和年龄然后打印出来 (2)要求用户输入一个数字,然后计算1到该数字之间的和 代码部分: # 导入tkinte ...

  3. 自定义alert弹框,title不显示域名

    问题: 系统默认的alert弹框的title会默认显示网页域名 解决办法: (修改弹框样式) (function() { window.alert = function(name) { $(" ...

  4. JavaScript实现自定义alert弹框

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAh0AAAFkCAYAAACEpYlzAAAfj0lEQVR4nO3dC5BddZ0n8F93pxOQCO

  5. 操作JavaScript的Alert弹框

    @Testpublic void testHandleAlert(){ WebElement button =driver.findElement(By.xpath("input" ...

  6. 自定义alert弹框,title不显示域名(重写alert)

    问题: 系统默认的alert弹框的title会默认显示网页域名 解决办法: (修改弹框样式) (function() { window.alert = function(name) { $(" ...

  7. 手写alert弹框(一)

    采用原生的JavaScript, html代码 <meta name="viewport" content="width=device-width, initial ...

  8. 如何优雅的写一个Vue 的弹框

    写Vue或者是react 都会遇见弹框的问题.也尝试了多种办法来写弹框,一直都不太满意,今天特地看了一下 Element UI 的源码,模仿着写了一个简易版. 大概有一下几个问题: 1.弹框的层级问题 ...

  9. CreateProcessAsUser,C#写的windows服务弹框提示消息或者启动子进程

    服务(Service)对于大家来说一定不会陌生,它是Windows 操作系统重要的组成部分.我们可以把服务想像成一种特殊的应用程序,它随系统的“开启-关闭”而“开始-停止”其工作内容,在这期间无需任何 ...

随机推荐

  1. WinForm - 窗体淡入效果界面的简单实现方法

    WinForm窗体淡入效果主要使用到控件的Opacity属性 首先在WinForm窗体中拖入一个Timer控件,然后再Timer控件的Tick事件添加如下代码: private void timer1 ...

  2. 关于js的window.open()

    window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,不过一般用来的是打开新窗口,因为修改原来的网页地址,可以有另一个函数,那就是window.locati ...

  3. 恩布拉科业务IM 1.8 版本号,内部沟通软件

    恩布拉科业务IM,开源企业IM,免费企业即时通讯,内部沟通平台,Entboost通告v1.8版本号,主要版本更新: 管理中心添加系统监控.集群管理二大功能模块:添加云盘空间.离线消息.文件大小等參数配 ...

  4. android圆形旋转菜单,而对于移动转换功能支持

    LZ该公司最近接手一个项目,需要写一个圆形旋转菜单,和菜单之间的移动换位支持,我本来以为这样的demo如若互联网是非常.想想你妈妈也帮不了我,空旋转,但它不能改变位置,所以LZ我们只能靠自己摸索. 最 ...

  5. 在Android程序中使用Modbus协议时报 java.net.SocketException: recvfrom failed: ECONNRESET解决办法

    最近在开发基本Modbus协议的Android端PLC控制程序,C#版程序没有任何问题,移到JAVA下出现各种问题,其中比较苦恼的是java.net.SocketException: recvfrom ...

  6. VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP

    PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了.  它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...

  7. WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容

    原文:WPF实现选项卡效果(3)--自定义动态添加的AvalonDock选项卡内容 简介 在前面一篇文章里面,我们实现了AvalonDock选项卡的动态添加,但是对于选项卡里面的内容,我们并没有实现任 ...

  8. sqlite 初

    1.SQLite是什么 基于文件的轻型数据库 无服务器  零配置  支持事务  开源 2.SQLite 怎么用   2.1 安装 SQLite官网上下载对应的DLL 与工具 配置环境变量 安装完成以后 ...

  9. OnPropertyChanged的使用

    #region INotifyPropertyChanged         public event PropertyChangedEventHandler PropertyChanged;     ...

  10. mysql数据库编码、字段编码、表编码 专题

    CREATE DATABASE `mybatis-subject` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin */ 其中的 ...