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 相关文章推荐
比较详细的javascript对象的property和prototype是什么一种关系
Aug 06 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
Nov 24 Javascript
jquery 快速回到页首的方法
Dec 05 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
js调用webservice构造SOAP进行身份验证
Apr 27 Javascript
很棒的vue弹窗组件
May 24 Javascript
微信小程序radio组件使用详解
Jan 31 Javascript
基于vue 动态加载图片src的解决方法
Feb 05 Javascript
vue cli webpack中使用sass的方法
Feb 24 Javascript
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
vue总线机制(bus)知识点详解
May 10 Javascript
微信小程序实现单个或多个倒计时功能
Nov 01 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 self,$this,const,static,-&amp;gt;的使用
2009/10/22 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
解析php5配置使用pdo
2013/07/03 PHP
PHP实现微信发红包程序
2015/08/24 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
google地图的路线实现代码
2009/08/20 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
Python md5与sha1加密算法用法分析
2017/07/14 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
教学改革实施方案
2014/03/31 职场文书
战友聚会主持词
2014/04/02 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
PHP新手指南
2021/04/01 PHP
MySQL优化及索引解析
2022/03/17 MySQL
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技