基于BootStarp的Dailog


Posted in Javascript onApril 28, 2016

BootStrip简介

Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。

Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。 它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。

Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。  国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。

1.1. 帮助文档关键字

boostrap模态框oaoDailog

1.2. 使用场景

当网页上点击某个按钮需要给予用户提示确认,用户点击确认按钮才能继续执行,或者用户点击取消按钮则取消执行操作;

当网页上点击查看,展示的数据需要使用弹出框展示的情况下,可以使用oaoDailog

1.3. 原理图

基于boostrap3.0的modal,jquery1.9

1.4. 使用说明

为什么需要oaoDailog?

a.由于boostrap3.0提供的modal,必须要在页面上先定义一个modal的div隐藏代码,用户将需要展示的内容写到该div中,如果一个页面有多种模态框,则需要写多个隐藏的模态框div隐藏代码,无疑这是多余的。

b.由于默认的modal是没有确认和取消按钮的,当然我们可以写两个button在模态框的隐藏div中,但是我们同时需要写js去监控确认按钮点击后执行的操作,同时确认按钮执行的操作,跟弹出时用户点击的数据有关系,数据如何传递,bootstrap没有给我们提供。

c. oaoDailog1.0.0版本主要就是解决bootstrap的模态框使用不方便,代码冗余的问题。

效果图:

基于BootStarp的Dailog

开始使用

1、 引入oaoDailog.js

Code:

<script type="text/javascript" src="${ctx}/static/jquery/jqueryApi/oaoDialog/oao.dialog.js" charset="UTF-8"></script>

2、 调用展示弹出框的代码

Code:

oao.dialog({
title:"删除提示框",
content:"请确认是否真的删除,删除后将无法恢复!",
ok:function(){
oao.dialog.close();
}
});

这就是一个基本也是使用最常见的确认弹出框的使用方法。

1.5. API

oao.dialog():这个方法是生成弹出框的方法,传入的参数是一个json对象,当然你也可以什么都不传,那样会弹出一个空白的弹出框,这是没有问题的。下面分别介绍每个参数的意思以及默认值。

属性名 属性类型 说明 默认值
title String 弹出框标题 提示
content String 弹出框的主要内容,可以是文本和html代码
okVal String 确认按钮的自定义文字 确认
ok Function/boolean 点击确认执行的方法 关闭功能
cancelVal String 取消按钮的自定义文字 取消
cancal Function/boolean 点击取消执行的方法 关闭功能

•oao.dialog.close():关闭模态框

1.6. 待支持的功能 1.目前弹出框的内容只支持文字和静态html,不支持url请求

2.目前最多只能显示两个按钮,不支持自定义按钮,后续支持

3.目前弹出框的位置和大小不支持自定义

4.目前的弹出框一次只能弹出一个,不支持弹出框中再弹出一个模态框(bootstrap modal底层不支持)

敬请期待,下个版本见。

/*!
* oaoDialog 1.0.0
* author:xufei
* Date: 2015-7-9 1:32
* http://www.oaoera.com
* Copyright © 2014 www.oaoera.com Inc. All Rights Reserved. 沪ICP备13024515号-1 上海义信电子商务有限公司 
*
* This is licensed under the GNU LGPL, version 2.1 or later.
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
*/
//oao命名空间
oao = {};
oao.init = function(settings){
var defaultSettings ={
title : "提示",
content:"",
okVal:"确认",
cancalVal:"取消",
ok:function(){
$("#oaoModal").modal('hide');
},
cancel:function(){
$("#oaoModal").modal('hide');
},
close:false
}
oao.settings = $.extend({}, defaultSettings, settings || {});
return oao.settings;
}
oao.initContent = function(){
var modelHtml = 
"<div id=\"oaoModal\" class=\"modal fade delete_modal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"myModalLabel\" aria-hidden=\"true\" >"+
" <div class=\"modal-dialog\">"+
" <div class=\"modal-content\">"+
" <div class=\"modal-header\">"+
" <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>"+
" <h4 class=\"modal-title\"></h4>"+
" </div>"+
" <div class=\"modal-body\" style=\"text-align:center;\">"+
" </div>"+
" <div class=\"modal-footer\">"+
" <button type=\"button\" class=\"btn btn-default modalCancel\"></button>"+
" <button type=\"button\" class=\"btn btn-primary modalOK\"></button>"+
" </div>"+
" </div>"+
" </div>"+
" </div>";
var $modelHtml = $(modelHtml);
$(".modalOK",$modelHtml).text(oao.settings.okVal);
$(".modalCancel",$modelHtml).text(oao.settings.cancalVal);
$(".modal-title",$modelHtml).text(oao.settings.title);
$(".modal-body",$modelHtml).html(oao.settings.content);
if(!oao.settings.ok){
$(".modalOK",$modelHtml).remove();
}
if(!oao.settings.cancel){
$(".modalCancel",$modelHtml).remove();
}
$("body").append($modelHtml);
}
//弹出对话框的方法
oao.dialog = function(settings){
settings = oao.init(settings);
oao.initContent();
//关闭的时候调用方法
$('#oaoModal').on('hidden.bs.modal', function (e) {
if(oao.settings.close){
oao.settings.close();
}
$("#oaoModal").remove();
})
if(oao.settings.ok){
$("#oaoModal .modalOK").click(settings.ok);
}
if(oao.settings.cancel){
$("#oaoModal .modalCancel").click(settings.cancel);
}
$("#oaoModal").modal('show')
.css({
"margin-top": function () {
return ($(this).height() / 2-200);
}
});;
}
//关闭对话框的方法
oao.dialog.close = function(){
$("#oaoModal").modal('hide');
}
Javascript 相关文章推荐
js下弹出窗口的变通
Apr 18 Javascript
关于js获取radio和select的属性并控制的代码
May 12 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
Mar 12 Javascript
js中使用replace方法完成某个字符的转换
Aug 20 Javascript
js实现文章文字大小字号功能完整实例
Nov 01 Javascript
JavaScript判断undefined类型的正确方法
Jun 30 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
Sep 25 Javascript
js从外部获取图片的实现方法
Aug 05 Javascript
Laravel中常见的错误与解决方法小结
Aug 30 Javascript
vue中v-for循环给标签属性赋值的方法
Oct 18 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
vue路由守卫及路由守卫无限循环问题详析
Sep 05 Javascript
浅析jquery与checkbox的checked属性的问题
Apr 27 #Javascript
JavaScript 消息框效果【实现代码】
Apr 27 #Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
Apr 27 #Javascript
js实现人民币大写金额形式转换
Apr 27 #Javascript
javascript实现不同颜色Tab标签切换效果
Apr 27 #Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
Apr 27 #Javascript
JavaScript弹窗基础篇
Apr 27 #Javascript
You might like
php对数组内元素进行随机调换的方法
2015/05/12 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
老生常谈进程线程协程那些事儿
2017/07/24 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
城市创卫标语
2014/06/17 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫