msgbox-confirm

github:  https://github.com/tong-mikasa/msgbox-confirm

主要js代码,scss代码

(function($) {
$.MsgBox = {
Alert: function (title, msg, callback) {
this._generateMsgboxHtml("alert", title, msg);
//$("body").append(Handlebars.compile(this._tplMsgHtm)({type: "alter", title: title, msg: msg}));
this._btnMsgOk(callback);
},
Confirm: function (title, msg, callback,cancelCallback) {
this._generateMsgboxHtml("confirm", title, msg);
//$("body").append(Handlebars.compile(this._tplMsgHtm)({type: "confirm", title: title, msg: msg}));
this._btnMsgOk(callback);
this._btnMsgNo(cancelCallback);
},
CustomizeConfirm: function (title, msg, leftButtonText,rightButtonText,callback,cancelCallback) {
this._generateMsgboxHtml("confirm", title, msg,leftButtonText,rightButtonText);
//$("body").append(Handlebars.compile(this._tplMsgHtm)({type: "confirm", title: title, msg: msg}));
this._btnMsgOk(callback);
this._btnMsgNo(cancelCallback);
},
_tplMsgHtm: $("#tpl_confirm_msgbox").html(),
_btnMsgOk: function(callback) {
var that = this;
$("#msg_btn_ok").click(function () {
that._removeMsgboxPopupWrap();
if (callback && typeof (callback) == 'function') {
callback();
}
});
},
_btnMsgNo: function(cancelCallback) {
var that = this;
$("#msg_btn_no").click(function () {
that._removeMsgboxPopupWrap();
if (cancelCallback && typeof (cancelCallback) == 'function') {
cancelCallback();
}
});
},
_generateMsgboxHtml: function (type, title, msg,leftButtonText,rightButtonText) { var okButtonText = (typeof leftButtonText == "undefined") ? '确定' : leftButtonText
, noButtonText = (typeof rightButtonText == "undefined") ? '取消': rightButtonText; var strHtm ='<div class="confirm-msgbox-popup-wrap">' +
' <div class="confirm-mask-bg"></div>' +
' <div id="confirm_content_wrap">' +
' <div class="msg-in">' +
' <div id="msg_header" class="text-center">' +
' <span id="msg_title">'+title+'</span>' +
' </div>' +
' <div id="msg_msg" class="text-center">' + msg + '</div>' +
' <div id="msg_btn_wrap" class="text-center">'; if(type == "alert")
{
strHtm += '<span id="msg_btn_ok" class="msg-btn cursor-point col-full">'+okButtonText+'</span>';
} if(type == "confirm"){
strHtm += '<span id="msg_btn_ok" class="msg-btn cursor-point col-half">'+okButtonText+'</span>';
strHtm +='<span id="msg_btn_no" class="msg-btn cursor-point col-half">'+noButtonText+'</span>';
} strHtm +=' </div>' +
' </div>' +
' </div>' +
' </div>'; this._removeMsgboxPopupWrap();
$("body").append(strHtm);
},
_removeMsgboxPopupWrap: function(){
$(".confirm-msgbox-popup-wrap").remove();
}
};
})(jQuery); /*
<script type="text/x-handlebars-template" id="tpl_confirm_msgbox">
<div class="confirm-msgbox-popup-wrap">
<div class="confirm-mask-bg"></div>
<div id="confirm_content_wrap">
<div class="msg-in">
<div id="msg_header" class="text-center">
<span id="msg_title">{{title}}</span>
</div>
<div id="msg_msg" class="text-center">
{{msg}}
</div>
<div id="msg_btn_wrap" class="text-center"> {{#ifCond type '==' 'alert'}}
<span id="msg_btn_ok" class="msg-btn cursor-point col-full">xxx</span>
{{/if}} {{#ifCond type '==' 'confirm'}}
<span id="msg_btn_ok" class="msg-btn cursor-point col-half">xxx</span>
<span id="msg_btn_no" class="msg-btn cursor-point col-half">xxx</span>
{{/ifCond}}
</div>
</div>
</div>
</div>
</script>
*/

  

.confirm-msgbox-popup-wrap{
position: fixed;
left: 0;
top: 0;
z-index: 9990;
width: 100%;
height: 100%;
.col-full{
width: 100%;
}
.col-half{
width: 50%;
}
.cursor-point{
cursor: pointer;
}
.confirm-mask-bg{
position: absolute;
z-index: 9991;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.8);
}
#confirm_content_wrap{
position: absolute;
z-index: 9999;
left: 50%;
top: 50%;
width: 400px;
height: 250px;
margin: -125px 0 0 -200px; .msg-in{
background: #ffffff;
border-radius: 14px;
-webkit-border-radius: 14px;
-moz-border-radius: 14px;
}
#msg_header{
padding-top: 15px;
border-top-left-radius: inherit;
border-top-right-radius: inherit;
}
#msg_title{
color: #333333;
text-align: center;
padding: 10px 0 10px;
font-size: 20px;
font-weight: bold;
}
#msg_msg{
color: #000000;
padding: 20px;
vertical-align: middle;
font-size: 16px;
line-height: 1.4;
max-height: 100px;
overflow-y: auto;
}
#msg_btn_wrap{
border-top: 1px solid #e6e6e5;
}
.msg-btn{
padding-top: 12px;
padding-bottom: 12px;
display: inline-block;
font-size: 15px;
color: #ffffff;
border: none;
border-right: 1px solid #e6e6e5; &:last-child{
border: none;
}
}
#msg_btn_ok{
color: #0079FF;
}
#msg_btn_no{
color: rgba(0, 0, 0, 0.9);
}
}
} @media screen and (max-width: 1000px) {
.confirm-msgbox-popup-wrap{
#confirm_content_wrap{
left: 10%;
right: 10%;
width: auto;
margin: -125px 0 0 0; #msg_title{
font-size: 30px;
} #msg_msg{
padding: 30px;
font-size: 28px;
}
.msg-btn{
padding-top: 20px;
padding-bottom: 20px;
font-size: 28px;
}
}
}
}

  

最近总想着写一个模拟alert和confirm插件,代替原生的的更多相关文章

  1. [转]jQuery插件实现模拟alert和confirm

    本文转自:http://www.jb51.net/article/54577.htm (function () { $.MsgBox = { Alert: function (title, msg) ...

  2. 模拟alert和confirm

    啥也不说,先上图,有图有真相 :) 现在绝大多数网站都不用自带的alert和confirm了,因为界面太生硬了.因此这个插件就这样产生了... 来看插件的实现代码吧: (function () { $ ...

  3. 自编jQuery插件实现模拟alert和confirm

    现在绝大多数网站都不用自带的alert和confirm了,因为界面太生硬了.因此这个插件就这样产生了自己定制一个的想法...... 啥也不说,先上图,有图有真相 :) 现在绝大多数网站都不用自带的al ...

  4. 从0开始写一个简单的vite hmr 插件

    从0开始写一个简单的vite hmr 插件 0. 写在前面 在构建前端项目的时候,除开基本的资源格式(图片,json)以外,还常常会需要导入一些其他格式的资源,这些资源如果没有第三方vite插件的支持 ...

  5. 模拟alert,confirm 阻塞状态

    /*** * 模拟alert弹窗 * content 为弹框显示的内容 * 确定按钮对应的下面取消关闭显示框 * **/function oAlert(content) { var oWrap = $ ...

  6. CSS写一个圣诞树Chrome浏览器小插件

    一时兴起,突然想写一个Chrome浏览器插件,不知道写啥,就写了一个圣诞树小插件.项目源码>> Chrome浏览器插件 Chrome浏览器插件最主要的是:index.html.manife ...

  7. 手写一个模拟的ReentrantLock

    package cn.daheww.demo.juc.reentrylock; import sun.misc.Unsafe; import java.lang.reflect.Field; impo ...

  8. 用 python 写一个模拟玩家移动的示例

    实例:二维矢量模拟玩家移动 在游戏中,一般使用二维矢量保存玩家的位置,使用矢量计算可以计算出玩家移动的位置,下面的 demo 中,首先实现二维矢量对象,接着构造玩家对象,最后使用矢量对象和玩家对象共同 ...

  9. JS模拟Alert与Confirm对话框

    这2个例子都是用原生JS写的,主要是用JS拼接了界面,并未做过多的事件监听.,样式用了Css3的一些特性. 调用方式则为: //Alert Alert.show('我警告你哦~'); //Confir ...

随机推荐

  1. springboot+swagger集成

    一.swagger介绍 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容 ...

  2. C++11新特性之auto

    auto的使用  c++11引入了auto类型说明符,auto让编译器通过初始值来推算变量的类型,所以auto定义的变量必须有初始值.  使用auto也能在一条语句中声明多个变量,因为一条声明语句只能 ...

  3. 更改文本的编码jsp.xml.java

    JSP改为UTF-8编码 更改xml workspace resource

  4. javascript总结26:Date

    1 获取Date对象 Date-引用类型,JavaScript中的内置对象 获取当前时间 var date = new Date(); //UTC的时间 //返回数字,时间的毫秒形式 var date ...

  5. 设计模式14:Command 命令模式(行为型模式)

    Command 命令模式(行为型模式) 耦合与变化 耦合是软件不能抵御变化的根本性原因.不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系. 动机(Motivation) 在 ...

  6. 编写高质量代码改善C#程序的157个建议——建议150:使用匿名方法、Lambda表达式代替方法

    建议150:使用匿名方法.Lambda表达式代替方法 方法体如果过小(如小于3行),专门为此定义一个方法就会显得过于繁琐.比如: static void SampeMethod() { List< ...

  7. ARM启动代码中_main 与用户主程序main()的区别

    1.1  问题描述     __main函数的作用是什么呀?1.2  问题剖析     __main函数是C/C++运行时库的一个函数,嵌入式系统在进入应用主程序之前必须有一个初始化的过程,使用__m ...

  8. Android-隐式意图激活所有应用

    显示意图 与 隐式意图 对比 显示意图不能激活多个组件,只能激活一个组件 隐式意图能激活多个组件 显示意图只能在自身应用激活,不能激活其他应用 隐士意图能在自身应用激活,也能激活其他应用 每个应用程序 ...

  9. windows中卸载Jenkins

    背景: 之前安装的Jenkins没有pipeline选项,可能是之前安装时没有选择建议插件.后面使用最新版本时还是没有插件 解决: 卸载Jenkins,删除掉C:\Users\用户名\.jenkins ...

  10. GRPC .netcore

    GRPC是Google发布的一个开源.高性能.通用RPC(Remote Procedure Call)框架.提供跨语言.跨平台支持.以下以一个.NET Core Console项目演示如何使用GRPC ...