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 相关文章推荐
将string解析为json的几种方式小结
Nov 11 Javascript
JavaScript实现广告的关闭与显示效果实例
Jul 02 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
详解Node.js项目APM监控之New Relic
May 12 Javascript
纯JS实现简单的日历
Jun 26 Javascript
AngularJS 最常用的八种功能(基础知识)
Jun 26 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
Mar 12 Javascript
微信小程序实现倒计时补零功能
Jul 09 Javascript
vue中动态添加class类名的方法
Sep 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下实现农历日历的代码
2007/03/07 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
js constructor的实际作用分析
2011/11/15 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
优秀高中生事迹材料
2014/02/11 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
同意报考证明
2015/06/17 职场文书
HTML5 语义化标签(移动端必备)
2021/08/23 HTML / CSS
SQL Server中搜索特定的对象
2022/05/25 SQL Server
HTML5页面打开微信小程序功能实现
2022/09/23 HTML / CSS