<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.div1{
position: absolute;
background: blue;
}
</style>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<div class="div1"></div>
<script type="text/javascript">
/*
*拖拽
*/
class Drag{
constructor(){
this.item=$(".div1");
this.draX=0;//x轴偏移量
this.draY=0;//y轴偏移量
this.w=200;//宽
this.h=200;//高
this.l=0;//设置div的left
this.t=0;//设置div的top
}
init(){//初始化div
this.item.css({
width:this.w,
height:this.h
});
this.offsetGet();
}
offsetGet(){//得到偏移量
var _this=this;
this.item.mousedown(function(ev){
var e=ev || event;
_this.draX=e.clientX-_this.item[0].offsetLeft;//得到X轴偏移量
_this.draY=e.clientY-_this.item[0].offsetTop;//得到Y轴偏移量
_this.itemMove();
})
}
itemMove(){//移动div
var _this=this;
$(document).mousemove(function(ev){
var e=ev || event;
_this.l=e.clientX-_this.draX;//得到left的距离
_this.t=e.clientY-_this.draY;//得到top的距离 //判断左边距
if(_this.l<0){
_this.l=0;
}else if(_this.l>$(document)[0].documentElement.clientWidth-_this.item[0].offsetWidth){
_this.l=$(document)[0].documentElement.clientWidth-_this.item[0].offsetWidth
}
//判断上边距
if(_this.t<0){
_this.t=0;
}else if(_this.t>$(document)[0].documentElement.clientHeight-_this.item[0].offsetHeight){
_this.t=$(document)[0].documentElement.clientHeight-_this.item[0].offsetHeight
}
_this.item.css({
left:_this.l,
top:_this.t
}) })
this.overMove();
}
overMove(){//结束移动
$(document).mouseup(function(){
$(document).unbind();
})
}
}
$(function(){
var newDrag=new Drag();
newDrag.init();
})
</script>
</body>
</html>

源代码:https://github.com/G-xiaojianwei/study_demo/blob/master/%E6%8B%96%E6%8B%BD.html

面向对象+jquery实现拖拽功能的更多相关文章

  1. js进阶 12-17 jquery实现鼠标左键按下拖拽功能

    js进阶 12-17 jquery实现鼠标左键按下拖拽功能 一.总结 一句话总结:监听的对象必须是文档,鼠标按下运行mousemove事件,鼠标松开取消mousemove事件的绑定,div的偏移的话是 ...

  2. 通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽

    前言 关于讲解 JS 的拖拽功能的文章数不胜数,我确实没有必要大费周章再写一篇重复的文章来吸引眼球.本文的重点是讲解如何在某些特定的元素上禁止拖拽.这是我在编写插件时遇到的问题,其实很多插件的拖拽功能 ...

  3. JQuery UI的拖拽功能

    JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量 ...

  4. JQuery UI的拖拽功能实现方法小结

    JQuery UI提供的API极大简化了拖拽功能的开发.只需要分别在拖拽源(source)和目标(target)上调用draggable和droppable两个函数即可. 拖拽原理 首先要明确几个概念 ...

  5. jquery sortTable拖拽排序

    所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象   ui.helper - 表示sortable元素的JQuery对象,通常是当前元素的克隆对象   ...

  6. jQuery 鼠标拖拽排序

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  7. 关于 JS 拖拽功能的冲突问题及解决方法

    前言 我在之前写过关于 JS 拖拽的文章,实现方式和网上能搜到的方法大致相同,别无二致,但是在一次偶然的测试中发现,这种绑定事件的方式可能会和其它的拖拽事件产生冲突,由此产生了对于事件绑定的思考.本文 ...

  8. Js元素拖拽功能实现

    Js元素拖拽功能实现 需要解决的问题 最近项目遇到了一个问题,就是用户某个操作需要弹出一个自定义的内容输入框,但是有个缺点,当浏览太大的时候没办法点击确认和取消按钮,应为这个弹出框是采用绝对定位的,取 ...

  9. vuejs2.0使用Sortable.js实现的拖拽功能

    简介 在使用vue1.x之前的版本的时候,页面中的拖拽功能,我在项目中是直接用的jquery ui中的sortable.js,只是在拖拽完成后,在update的回调函数中又重新排序了存放数据的数组.但 ...

随机推荐

  1. .net MVC 访问404

    MVC 项目访问总是404 有几种情况: 1 地址打错了. 2 controller/action  但是action方法含有[ActionName("Index")] 重命名了. ...

  2. 大学实验3指导:利用单链表实现A-B

    实验目的:深入理解单链表的建立及操作 实验内容: 1.建立单链表A与B 2.实现主要的函数,查找.插入.删除等 3.实现操作A-B 步骤1:包含必要的函数库,对结构体LNode中的抽象数据类型Elem ...

  3. thymeleaf中js跳转到另外一个页面

    <script type="text/javascript"> setTimeout("location.href='index'", 3000); ...

  4. IDEA中Git分支未push的变更集如何合并到另一个分支

    使用rebase命令 刚开始,A分支和B分支的代码是一样的,把A分支checkout 为当前分支,并且修改了代码,进行[commit]和[push],commit成功了,但是push没有权限. 这个时 ...

  5. WC2019 划水记

    写在前面: 本篇是擅长咕咕咕的\(\text{BLUESKY007}\)同学难得不咕写的游记,将会记录\(WC2019(2019.1.24(Day\ 0)\sim2019.1.30(Day\ 6))\ ...

  6. 「POJ3696」The Luckiest number【数论,欧拉函数】

    # 题解 一道数论欧拉函数和欧拉定理的入门好题. 虽然我提交的时候POJ炸掉了,但是在hdu里面A掉了,应该是一样的吧. 首先我们需要求的这个数一定可以表示成\(\frac{(10^x-1)}{9}\ ...

  7. js-基本语法

    条件语句 通过条件来控制程序的走向,就需要用到条件语句. 运算符 1.算术运算符: +(加). -(减). (乘). /(除). %(求余) 2.赋值运算符:=. +=. -=. =. /=. %= ...

  8. 【原创】hdu 1166 敌兵布阵(线段树→单点更新,区间查询)

    学习线段树的第三天...真的是没学点啥好的,又是一道水题,纯模板,我个人觉得我的线段树模板还是不错的(毕竟我第一天相当于啥都没学...找了一整天模板,对比了好几个,终于找到了自己喜欢的类型),中文题目 ...

  9. python查找字符串所有子串

    https://blog.csdn.net/jiangjiang_jian/article/details/79453856 [s[i:i + x + 1] for x in range(len(s) ...

  10. 【php】 php获取文件路径中的文件名和文件后缀方法

    获取文件名 $file = realpath(__DIR__.'/images/common/../addBtn.png'); 方法一 $file = realpath(__DIR__.'/image ...