bootstrap实现弹窗和拖动效果_javascript技巧
有时开发一些特效,自己感觉挺爽的,像操作自己电脑一样操作你的网页,这里就介绍一个使用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'));
整个过程即是如此,有需要的,就参考参考吧!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

如何使用 Bootstrap 获取搜索栏的值:确定搜索栏的 ID 或名称。使用 JavaScript 获取 DOM 元素。获取元素的值。执行所需的操作。

使用 Bootstrap 实现垂直居中:flexbox 法:使用 d-flex、justify-content-center 和 align-items-center 类,将元素置于 flexbox 容器内。align-items-center 类法:对于不支持 flexbox 的浏览器,使用 align-items-center 类,前提是父元素具有已定义的高度。

创建 Bootstrap 分割线有两种方法:使用 标签,可创建水平分割线。使用 CSS border 属性,可创建自定义样式的分割线。

在 Bootstrap 中插入图片有以下几种方法:直接插入图片,使用 HTML 的 img 标签。使用 Bootstrap 图像组件,可以提供响应式图片和更多样式。设置图片大小,使用 img-fluid 类可以使图片自适应。设置边框,使用 img-bordered 类。设置圆角,使用 img-rounded 类。设置阴影,使用 shadow 类。调整图片大小和位置,使用 CSS 样式。使用背景图片,使用 background-image CSS 属性。

要设置 Bootstrap 框架,需要按照以下步骤:1. 通过 CDN 引用 Bootstrap 文件;2. 下载文件并将其托管在自己的服务器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根据需要编译 Sass/Less;5. 导入定制文件(可选)。设置完成后,即可使用 Bootstrap 的网格系统、组件和样式创建响应式网站和应用程序。

如何使用 Bootstrap 按钮?引入 Bootstrap CSS创建按钮元素并添加 Bootstrap 按钮类添加按钮文本

要调整 Bootstrap 中元素大小,可以使用尺寸类,具体包括:调整宽度:.col-、.w-、.mw-调整高度:.h-、.min-h-、.max-h-
