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 相关文章推荐
TBCompressor js代码压缩
Jan 05 Javascript
关于JS数组追加数组采用push.apply的问题
Jun 09 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
jquery实现的动态回到顶部特效代码
Oct 28 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
May 12 Javascript
xmlplus组件设计系列之图标(ICON)(1)
May 05 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 jQuery
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 Javascript
微信小程序返回箭头跳转到指定页面实例解析
Oct 08 Javascript
javascript 使用sleep函数的常见方法详解
Apr 26 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
jquery插件之easing 动态菜单
2010/08/21 Javascript
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
python实现按任意键继续执行程序
2016/12/30 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
联想C++笔试题
2012/06/13 面试题
临床医学专业毕业生的自我评价
2013/10/17 职场文书
大学毕业感言100字
2014/02/03 职场文书
护士个人自我鉴定
2014/03/24 职场文书
质量承诺书范文
2014/03/27 职场文书
《长相思》听课反思
2014/04/10 职场文书
企业文明单位申报材料
2014/05/16 职场文书
学校教研活动总结
2014/07/02 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
感恩主题班会教案
2015/08/12 职场文书