博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bootstrap使用之多个弹窗和拖动效果[开发篇]
阅读量:4334 次
发布时间:2019-06-07

本文共 3389 字,大约阅读时间需要 11 分钟。

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

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

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

    

  

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

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

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

转载于:https://www.cnblogs.com/yougewe/p/4962430.html

你可能感兴趣的文章
TED:如何掌控你的自由时间以及让自己变得更好,这样就能看到爱情应有的样子...
查看>>
JQuery系列(8) - JQuery插件开发
查看>>
想当然是编程最大的坑,记更新删除过期cookie无效有感
查看>>
classmethod和staticmethod
查看>>
Thymeleaf 模板 springboot集成使用
查看>>
配置IIS Silverlight运行环境
查看>>
Android学习路线
查看>>
使用maven一步一步构建spring mvc项目
查看>>
python运维开发之第十一天(RabbitMQ,redis)
查看>>
cmd 常用操作
查看>>
Mac下Jekyll安装
查看>>
centOS 7 yum安装MySQL5.6
查看>>
模型多语言
查看>>
JavaScript对象
查看>>
tab 页形式展现多张报表
查看>>
SharePoint 2010/SharePoint 2013 Custom Action: 基于Site Collection 滚动文字的通知.
查看>>
Ubuntu下安装和配置Apache2
查看>>
LVS-NAT
查看>>
git clone错误 fatal: early EOF fatal: index-pack failed
查看>>
进程相关操作
查看>>