有时开发一些特效,自己感觉挺爽的,像操作自己电脑一样操作你的网页,这里就介绍一个使用bootstrap的一点多窗口和拖动效果吧!

    这里,我们不使用静态打开的的方式,low...,1、添加一个a链接 触发,打开按钮;2、编写动态打开js脚本; 3、编写modal中间内容;4、添加拖动效果;5、打开多个modal , 调用dragModal(new Array('modalId1','modalId2'));

    1、添加一个a链接 触发,打开按钮:

    

<a href="javascript:;" title="开关" class="open-modal-dynamic" url="index.php?m=index&c=cc&a=aa&id=22" alert='1' divid="editModal">打开modal<a>
<div id="addModal" class="modal hide fade" style="max-width:800px;" data-backdrop="static"></div> <!-- 打开容器 -->

  

    2、编写动态打开js脚本:

    //打开弹窗
$('.open-modal-dynamic').on('click', function(){
var modalId = $(this).attr('divid') ? $(this).attr('divid') : 'Modal', url = $(this).attr('url');
$.get(url, function(data){
if(data.status == 1){
//禁止选择文字,在拖动时会有影响
$('html').off('selectstart').on('selectstart', function(){return false;});
$('#' + modalId).html(data.htmlData);
$('#' + modalId).modal({'show':true});
}else{
alert(data.info);
}
}, 'json');

    3、编写modal中间内容:

<style>
.line{margin-bottom: 5px;}
.line .left{width: 100px;text-align:right;display:block;}
.form-button{padding:2px 10px;background:#73A86A;color:#ffffff;border:none;}
.form-button:hover{background:#146206;}
</style>
<div class="modal-header">
<a class="close" title="关闭小窗口" data-dismiss="modal">×</a>
<h3>modal window<h3>
</div>
<div class="modal-body" style="padding-bottom: 5px;">
<div class="line">
<span class="left">脚本名称:</span>
<span>
<select name="name">
<option value='11'>11</option>
<option value='22'>22</option>
</select>
</span>
</div>
<div class="line">
<span class="left">日期:</span>
<span style="word-break:break-all;" title="的时间">
<input class="Wdate ipt date-picker" style="width: 100px;margin: 0;" type="text" id="date_add" value="" />
</span>
</div>
<div class="line" title="设置">
<span class="left">是否停止:</span>
<span>
<label><input type="radio" name="is_del_add" value="1" />强制停止</label>
<label><input type="radio" name="is_del_add" value="0" />正常处理</label>
</span>
</div>
<div class="line" title="按照实际情况允许进行模拟更改">
<span class="left">执行情况:</span>
<span>
<label><input type="radio" name="status_add" value="5" onclick="javascript:return confirm('你确定要操作该状态吗,这是系统的操作,请确认?');" />11</label>
<label><input type="radio" name="status_add" value="1" onclick="javascript:return confirm('你确定要操作该状态吗,这是系统的操作,请确认?');" />22成</label>
<label><input type="radio" onclick="javascript:return confirm('你确定要操作该状态吗,这是系统的操作,请确认?');" name="status_add" value="2"/>223行</label>
<label><input type="radio" onclick="javascript:return confirm('你确定要操作该状态吗,这是系统的操作,请确认?');" name="status_add" value="0" />445</label>
<label><input type="radio" onclick="javascript:return confirm('你确定要操作该状态吗,这是系统的操作,请确认?');" name="status_add" value="4" />55失败</label>
</span>
</div>
<div class="line">
<span>操作说明:</span>
<textarea name="memo" id="memo" cols="100" rows="1" style="width:370px;></textarea>
</div>
<div class="line" style="text-align:center;">
<input type="button" value="提交" class="form-button" id="submit2" />
<input type="hidden" id="id_add" value="22" />
</div>
</div>
<div class="modal-footer">
<span class="loading"></span>
<button class="btn" data-dismiss="modal" aria-hidden="true">关闭</button>
</div>
<script src="/js/dragModal.js"></script>
<script>
$(function(){
$('#submit2').off().on('click', function(){
var status = $('input[name=status_add]:checked').val(),
memo = $('#memo').val(),
id = parseInt($('#id_add').val()),
is_del = $('input[name=del_add]:checked').val(),
cron_name = $('#name_add').val(),
cron_date = $('#date_add').val(),
url ='index.php?m=xx&c=xx&a=';
if(!memo){
alert('请填写操作备注,如不处理,请直接关闭对话框!');
return false;
}
$.post(url, {status: status, cron_name:cron_name, memo: memo, id: id, cron_date: cron_date, is_del: is_del}, function(data){
if(data.status == 1){
alert(data.info);
window.location.reload();
}else{
alert(data.info);
}
}, 'json')
}); });
// drag effects begin, define the global variables to receive the changes,because of the different function of the modal
dragModal('editModal');
</script>

    4、添加拖动效果:

var clicked = "0";
var dif = {};
;function dragModal(obj) { if(clicked == undefined || obj == undefined || dif == undefined){
return false;
}
if(typeof obj == 'string')
{
obj = new Array(obj);
}
var modalNums = obj.length;
//drag effects begin
var i = 0;
for (i = 0; i < modalNums; i++) {
dif[obj[i]] = {'difx': 0, 'dify': 0};
}
$("html").off('mousemove').on('mousemove', function (event) {
if (clicked == "0") {
for (i = 0; i < modalNums; i++) {
dif[obj[i]].difx = event.pageX - $("#" + obj[i]).offset().left;
dif[obj[i]].dify = event.pageY - $("#" + obj[i]).offset().top;
}
}
if (clicked > 0 && clicked <= modalNums) {
var clickedObj = obj[clicked - 1];
var newx = event.pageX - dif[clickedObj].difx - $("#" + clickedObj).css("marginLeft").replace('px', '');
var newy = event.pageY - dif[clickedObj].dify - $("#" + clickedObj).css("marginTop").replace('px', '');
$("#" + clickedObj).css({top: newy, left: newx});
} }); $("html").off('mouseup').on('mouseup', function (event) {
clicked = "0";
}); for(i = 0; i < modalNums; i++){
//注重此处不能直接传入i值,此处即为添加多窗口时的效果使用
$("#" + obj[i] + " .modal-header").off().on('mousedown',{index: i}, function (event) {
clicked = event.data.index + 1;
});
$("#" + obj[i] + " .modal-footer").off().on('mousedown', {index: i}, function (event) {
clicked = event.data.index + 1;
});
$('#' + obj[i]).on('hide.bs.modal', function () { //关闭时打开选中
$('html').off('selectstart').on('selectstart', function () {
return true;
});
}); }
}

    5、打开多个modal , 调用dragModal(new Array('modalId1','modalId2'));

    整个过程即是如此,有需要的,就参考参考吧!

bootstrap使用之多个弹窗和拖动效果[开发篇]的更多相关文章

  1. JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有)

    前言:最近园子里多了许多谈语言.谈环境.谈逼格(格局)的文章,看看笑笑过后,殊不知其实都是然并卵.提升自己的技术才是王道.之前博主分享过多篇bootstrap组件的文章,引起了很多园友的关注和支持,看 ...

  2. vc++ mfc中拖动效果的实现 借助于CImageList

    拖动是界面编程频繁使用的一个效果,在windows系统下可谓大行其道.纵观时下的应用软件几乎各个都支持各种各样拖动的效果,windows7更是把拖动做到了极致.其实说起来拖动的实现也很简单,对于有句柄 ...

  3. js实现一个可以兼容PC端和移动端的div拖动效果

    前段时间写了一个简单的div拖动效果,不料昨天项目上正好需要一个相差不多的需求,就正好用上了,但是在移动端的时候却碰到了问题,拖动时候用到的三个事件:mousedown.mousemove.mouse ...

  4. 使用jquery实现简单的拖动效果,分享源码

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkEAAAERCAIAAADzAOSQAAALRklEQVR4nO3dW5LaaAKEUfa/NkfMGu

  5. Bootstrap:弹出框和提示框效果以及代码展示

    前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑.在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的 ...

  6. JS组件Bootstrap实现弹出框和提示框效果代码

    这篇文章主要介绍了JS组件Bootstrap实现弹出框和提示框效果代码,对弹出框和提示框感兴趣的小伙伴们可以参考一下 前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编 ...

  7. GridView拖动效果实现

    GridView拖动效果实现 1.    重新GridView控件 package com.whbs.drag.widget; import com.whbs.drag.DragGridActivit ...

  8. jquery div拖动效果示例代码

    div拖动效果想必大家都有见到过吧,实现的方法也是有很多的,下面为大家将介绍使用jquery是如何实现的,感兴趣的朋友不要错过 复制代码代码如下: <%@ page language=" ...

  9. 使用jQuery实现简单的拖动效果

    转自:http://www.muzilei.com/archives/136 如何实现拖动效果? 浏览DEMO 首先分析下拖动效果原理: 1.当鼠标在被拖动对象上按下鼠标(触发onmousedown事 ...

随机推荐

  1. Python爬虫中文小说网点查找小说并且保存到txt(含中文乱码处理方法)

    从某些网站看小说的时候经常出现垃圾广告,一气之下写个爬虫,把小说链接抓取下来保存到txt,用requests_html全部搞定,代码简单,容易上手. 中间遇到最大的问题就是编码问题,第一抓取下来的小说 ...

  2. window、location、location.href、self、top简单介绍

    1.self:当前窗口对象(如果是在iframe里,则为该框架的窗口对象) 2.top:父窗口对象 3.window:典型情况下,浏览器会为每一个打开的html创建对应的window对象,如果这个文档 ...

  3. 面试加分项---HashMap底层实现原理

    想必大家都知道HashSet和HashMap之间的关系,HashSet是依赖于HashMap的,HashSet集合就是HashMap的key所组成的集合,我们都知道HashMap的value是可以重复 ...

  4. vivo手机,自带世界之窗浏览器,sessionStorage设置的值为null

    最近遇到一个小问题 用vivo手机自带浏览器,每次跳转到一个新页面都是重新打开一个webpage,导致sessionStorage设置的值都没了. 所以开发移动端网页时,谨慎使用sessionStor ...

  5. 《深入理解JAVA虚拟机》----------第二章 JAVA内存区域与内存溢出异常,笔记(下)

    2. HotSpot虚拟机对象探秘 2.1 对象的创建 虚拟机遇到一条New指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载.解析和初 ...

  6. matplotlib坐标轴的一些操作

  7. python note 02 格式化与判断、字符串转换

    1.格式化输出% %s %d name = input ('请输入姓名:') age = input ('请输入年龄:') height = input ('请输入身高:') msg = " ...

  8. Agile PLM 表结构说明

    1.    Activity:项目表class表示大类(关口和活动),subclass表示小类(关口,任务,计划,阶段)subclass=18027:计划(项目),subclass=18028:阶段, ...

  9. eclipse中集成python开发环境

    转载:https://www.cnblogs.com/mywood/p/7272487.html Eclipse简介 Eclipse是java开发最常用的IDE,功能强大,可以在MAC和Windos上 ...

  10. CentOS7 使用ifconfig命令 ENS33没有IP地址的解决办法

    最近在研究和学习Linux操作系统,我并没有安装独立的Linux操作系统,我选择在虚拟机上安装Linux操作系统.我选择的虚拟机的版本是VMware Workstation Pro14,然后在虚拟机上 ...