jQuery窗口拖动功能的实现代码


Posted in Javascript onFebruary 04, 2017

jQuery窗口拖动功能的实现代码

具体代码如下所示:

$("#showTitle").mousedown(function (e) {
    vbool = true;
    vHeight = e.pageY;
    vWidth = e.pageX;
    cHeight = vHeight - $("#show").offset().top;
    cWdith = vWidth - $("#show").offset().left;
    //alert("divshow" + $("#show").offset().top + " divvHeight" + vHeight);
    //alert("高" + cHeight + " 宽" + cWdith);
  })
  $(document).mouseup(function () {
    vbool = false;
  })
  var showWidth = $("#show").width();
  var showHeight = $("#show").height();
  var documentWidth = $(document).width();
  var documentHeight = $(document).height();
  $(document).mousemove(function (e) {
    if (vbool) {
      var divheight = e.pageY - cHeight;//窗口要移动到的位置
      var divwidth = e.pageX - cWdith;//窗口要移动到的位置
      $("#la1").text(divheight + "w" + divwidth + "win" + showWidth + " x " + documentWidth + "" + showWidth);
      if (divwidth < 0) {
        divwidth = 0;
      }
      if (divheight < 50) {
        divheight = 50;
      }
      if (divwidth > documentWidth - showWidth) {
        divwidth = documentWidth - showWidth - 5;
      }
      if (divheight > documentHeight - showHeight) {
        divheight = documentHeight - showHeight - 5;
      }
      $("#show").css({ "left": divwidth, "top": divheight });
    }
  })

下面看下jQuery 鼠标拖拽移动窗口的实现代码

拖拽移动需要注意的是:拖拽移动的窗口是如何定位的,如果"left"属性为"%" ,以"margin-left"来计算定位,如下实例,如果"left"属性为数字,直接使用"left"即可。

// 弹窗模块拖拽拖动
$(function(){
  var _move=false;//移动标记
  var _x,_y;//鼠标离控件左上角的相对位置
  var _dragZone = $(".M_boxCenter .M_boxBody > h3");
  var _dragBody = _dragZone.parent();
  _dragZone.mousedown(function(e){
    $(this).attr("onselectstart", "return false"); //禁双击选中
    $("body").css({"-webkit-user-select":"none", "-moz-user-select":"none", "-ms-user-select":"none", "-khtml-user-select":"none", "user-select":"none"}); //禁止选中文字
    _move=true;
    _x=e.pageX-parseInt(_dragBody.css("margin-left"));
    _y=e.pageY-parseInt(_dragBody.css("margin-top"));
    _dragBody.fadeTo(150, 0.5);
  });
  $(document).mousemove(function(e){
    if(_move){
      var x=e.pageX-_x;//移动时根据鼠标位置计算控件左上角的绝对位置
      var y=e.pageY-_y;
      if(e.pageX <= 0 || e.pageY <= 0){
        _move=false;
      }else {
        _dragBody.css({marginLeft:x, marginTop:y});//控件新位置
      }
    }
  }).mouseup(function(){
    _move=false;
    _dragBody.fadeTo("fast", 1);
    $("body").removeAttr("style"); //移除不能选文字
  });
});

以上所述是小编给大家介绍的jQuery窗口拖动功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于Jquery的动态添加控件并取值的实现代码
Sep 24 Javascript
javascript getElementsByTagName
Jan 31 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
Nov 24 Javascript
CSS+jQuery实现的一个放大缩小动画效果
Sep 24 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
javascript Array 数组常用方法
Apr 05 Javascript
js 提交form表单和设置form表单请求路径的实现方法
Oct 25 Javascript
jquery submit()不能提交表单的解决方法
Apr 24 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
JSON对象转化为字符串详解
Aug 11 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 Javascript
简单易懂的天气插件(代码分享)
Feb 04 #Javascript
URL中“#” “?” &amp;“”号的作用浅析
Feb 04 #Javascript
Angularjs 依赖压缩及自定义过滤器写法
Feb 04 #Javascript
javascript实现复选框全选或反选
Feb 04 #Javascript
JavaScript获取当前时间向前推三个月的方法示例
Feb 04 #Javascript
javascript表单正则应用
Feb 04 #Javascript
JS中的phototype详解
Feb 04 #Javascript
You might like
php 设计模式之 工厂模式
2008/12/19 PHP
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
师范生实习个人的自我评价
2013/09/28 职场文书
银行自荐信范文
2015/03/25 职场文书
2015年度物流工作总结
2015/04/30 职场文书
百年孤独读书笔记
2015/06/29 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技