基于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 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
理解Javascript_08_函数对象
Oct 15 Javascript
一些实用的jQuery代码片段收集
Jul 12 Javascript
即将发布的jQuery 3 有哪些新特性
Apr 14 Javascript
js流动式效果显示当前系统时间
May 16 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
Dec 08 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
浅谈微信小程序flex布局基础
Sep 10 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
Oct 23 jQuery
卸载vue2.0并升级vue_cli3.0的实例讲解
Feb 16 Javascript
前端框架ECharts dataset对数据可视化的高级管理
Dec 24 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页面局部刷新功能的实现小结
2013/06/21 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
Python入门教程之if语句的用法
2015/05/14 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
上班玩游戏检讨书
2014/02/07 职场文书
社会实践评语
2014/04/28 职场文书
2014年库房工作总结
2014/11/26 职场文书
投标承诺函范文
2015/01/21 职场文书
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js