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 相关文章推荐
AJAX使用了UpdatePanel后无法使用alert弹出脚本
Apr 02 Javascript
一个javascript图片阅览组件
Nov 09 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
Nov 14 Javascript
别了 JavaScript中的isXX系列
Aug 01 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
jquery实现select下拉框美化特效代码分享
Aug 18 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
JS组件Bootstrap Select2使用方法解析
May 30 Javascript
Vue.js项目部署到服务器的详细步骤
Jul 17 Javascript
js实现盒子滚动动画效果
Aug 09 Javascript
8个非常实用的Vue自定义指令
Dec 15 Vue.js
简单易懂的天气插件(代码分享)
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
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Js callBack 返回前一页的js方法
2008/11/30 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
详解Python的Django框架中的templates设置
2015/05/11 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
Python实现Event回调机制的方法
2019/02/13 Python
elasticsearch python 查询的两种方法
2019/08/04 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
什么时候需要进行强制类型转换
2016/09/03 面试题
保护环境倡议书
2014/04/14 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫