bootstrap 对话框 移动,bootstrap实现弹窗和拖动效果

news/2025/1/25 20:35:27

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

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

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

打开modal

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中间内容:

.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;}

$(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');

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学习教程

Bootstrap实战教程

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网


https://dhexx.cn/news/show-2301490.html

相关文章

oracle scn跳变是什么意思,Oracle block scn什么时候发生变化

我们知道block scn存在 block头中&#xff0c;其具体位置在block offset 8-13中&#xff0c;即占用6个字节。用bbed查看&#xff0c;可以看到scn处于kcbh结构体中&#xff0c;其中offset 8-11属于scn的低8位&#xff0c;offfset 12-13属于scn的高4位。struct kcbh, 20 bytes …

oracle创建64位序列号,Oracle创建序列号

Oracle中的序列号顾名思义就是创建一个序列号&#xff0c;可以在插入或者更新的时候调用&#xff0c;相当于是一个生成器创建语法&#xff1a;create sequence myseincrement by 1 --增长度start with 1 --从哪里增加&#xff0c;就是说下一个获取的值从这个值开…

oracle t7 1,Oracle SPARC t7-1服务器介绍及配置参数

Oracle的SPARC t7 - 1服务器是一个单处理器系统&#xff0c;它使组织能够以相比其他方案更低的成本、更高的安全性和性能来响应IT需求。它是理想的企业类工作负载&#xff0c;包括数据库、应用程序、Java和中间件&#xff0c;特别是在云环境中。这个系统是基于SPARCM7处理器&am…

求列累计oracle rollup,oracle-rollup 跟cube分组累计求和

oracle--rollup 和cube分组累计求和group by 语句支持基本的having条件&#xff0c;还支持rollup和cube提供信息汇总功能&#xff0c;类似小计。rollup&#xff1a;纵向小计&#xff0c;从右向左逐个对每一列进行小结并在结果中生成独立的一行。只返回第一个分组条件指定的列的…

linux中打开php文件,如何从php文件重启Linux

我在Linux系统上有一个brftv用户&#xff0c;并且我有运行nginx的www-data。从终端我可以让我的brftv用户运行sudo /sbin/reboot自从我将以下内容添加到我的/ etc / sudoers文件的“ #user权限规范”部分后&#xff0c;它就可以正常工作&#xff1a;brftv ALLNOPASSWD: /sbin/h…

linux ssh 命令 密码错误,linux中ssh密钥登录失败解决办法

今天我在设置ssh密钥登录的时候&#xff0c;发现这个奇怪的情况&#xff0c;我将我的id_rsa.pub密钥内容拷贝到远程linux主机的A用户的.ssh下的authorized_keys(这个文件我手动建立的)下&#xff0c;但是再次登录时&#xff0c;发现还需要输入密码&#xff0c;额&#xff1f;这…

windows挂载linux共享文件夹,windows 挂载linux搭建的nfs共享文件夹目录

linux搭建nfs共享磁盘参考&#xff1a;linux配置NFS网络共享文件夹目录 ,下面详细说明windows如何挂载linux搭建的nfs共享文件夹。1.打开控制面-程序 打开或关闭windows功能-角色-添加角色-文件服务2.继续选择角色服务-网络文件系统服务-然后点击下一步安装3.挂载linux nfs共享…

Linux中用时较长的命令,超有用!20个 Unix/Linux 命令技巧

作者&#xff1a;nixCraft让我们用这些Unix/Linux命令技巧开启新的一年&#xff0c;提高在终端下的生产力。我已经找了很久了&#xff0c;现在就与你们分享。删除一个大文件我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃&#xff0c;我担心这是…

linux 监视目录文件夹,linux文件文件夹递归监控

linux文件文件夹递归监控开发了一个规范的php composer包&#xff0c;使用的时候直接require即可。实现php版本的实现沿用了shell版本的思想&#xff0c;通过管道命令传递shell命令的结果&#xff0c;然后对结果做各种处理&#xff0c;达到我们监控文件的目的。为了完成这个功能…

linux 字符串格式化,Python 字符串的格式化两种方式

Python字符串的格式化分为两种&#xff1a;1)% 方式 2)str.format() 方式。str.format() 是比 % 较新的方式&#xff0c; 大多数的 Python 代码仍然使用 % 操作符。但最终会被str.format()代替&#xff0c;推荐使用str.format()1、% 方式1)用法%[(name)][flags][width].[pr…