生成拖曳指定div的脚本

前端开发时,经常需要弹出一个div,div内容动态获取,同时我们需要这个div层可以有鼠标拖曳的效果,可以用下面的代码来实现:

protected string create_drag_script(string c_class_name = "container", string c_div_id = "div_pop")
    {
        string c_script = "<script type='text/javascript'>";
        c_script += "function set_div_drag(){";
        c_script += "var div_e_x = 0;var div_e_y = 0;var div_left = 0;var div_top = 0; var div_move = false; var div_width, div_height;";

        c_script += "$('." + c_class_name + "').click(function () { }).mousedown(function (e) {";
        c_script += "div_e_x = e.clientX;div_e_y = e.clientY;";
        c_script += "div_left = parseInt($('." + c_class_name + "').css('left'));";
        c_script += "div_top = parseInt($('." + c_class_name + "').css('top'));";
        c_script += "div_width = parseInt($('." + c_class_name + "').css('width'));";
        c_script += "if (div_e_y < div_top + 30 && div_e_y > div_top) div_move = true;else div_move = false;";
        c_script += "});";

        c_script += "$('." + c_class_name + "').mouseout(function () {";
        c_script += " $('." + c_class_name + "').css('cursor', 'default');";
        c_script += "});";

        c_script += "$(window).mousemove(function (e) {";
        c_script += "var div_nx = e.clientX;var div_ny = e.clientY;var div_nl = div_nx - (div_e_x - div_left);var div_nt = div_ny - (div_e_y - div_top);";
        c_script += "if (div_move == false) {";
        c_script += " div_left = parseInt($('." + c_class_name + "').css('left'));";
        c_script += " div_top = parseInt($('." + c_class_name + "').css('top'));";
        c_script += " div_width = parseInt($('." + c_class_name + "').css('width'));";
        c_script += " if (div_ny < div_top + 30 && div_ny > div_top && div_nx < div_left + div_width && div_nx > div_left + div_width - 30) {";
        c_script += "  $('." + c_class_name + "').css('cursor', 'pointer');";
        c_script += "  }else{";
        c_script += "  $('." + c_class_name + "').css('cursor', 'default');}";
        c_script += " return;";
        c_script += "}";
        c_script += "$('." + c_class_name + "').css('cursor', 'move');";
        c_script += "$('." + c_class_name + "').css('left', div_nl + 'px');";
        c_script += "$('." + c_class_name + "').css('top', div_nt + 'px');";
        c_script += "});";

        c_script += "$(window).mouseup(function () { ";
        c_script += " div_move = false;";
        c_script += " $('." + c_class_name + "').css('cursor', 'default');";
        c_script += " });";
        c_script += "}";
        c_script += "function hide_div(divname) {$('#' + divname).fadeOut(400);$('#' + divname).remove();}";
        c_script += "function set_div_middle(divname) {";
        c_script += " var windowW = $(window).width();var windowH = $(window).height();";
        c_script += " var o1 = document.getElementById(divname);var w1 = (windowW - $(o1).width()) / 2;var h1 = (windowH - $(o1).height()) / 2;";
        c_script += " $(o1).css('top', '50px');$(o1).css('left', w1);";
        c_script += " return true;";
        c_script += "}";
        c_script += "</script>";
        return c_script;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁亚涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值