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 控制弹出窗口
Apr 10 Javascript
js表格分页实现代码
Sep 18 Javascript
理解javascript异步编程
Jan 27 Javascript
Angularjs中使用Filters详解
Mar 11 Javascript
js Canvas实现的日历时钟案例分享
Dec 25 Javascript
JavaScript实现星级评分
Jan 12 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
JavaScript变量基本使用方法实例分析
Nov 15 Javascript
在Vue.js中使用TypeScript的方法
Mar 19 Javascript
JS实现简单打字测试
Jun 24 Javascript
javascript实现随机抽奖功能
Dec 30 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
JavaScript截断字符串的方法
2015/07/15 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
小学数学教研活动总结
2014/07/01 职场文书
大学生活动总结模板
2014/07/02 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
Python 实现Mac 屏幕截图详解
2021/10/05 Python
详解redis在微服务领域的贡献
2021/10/16 Redis