JS 拖动DIV 需要JQUERY 支持
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>自由拖动的DIV层方块</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<script type="text/javascript" src="js/jquery.min.js"></script>
<style type="text/css">
#draggable {
background-color: green;
font-size: 9pt;
padding: 30px;
color: white;
width: 360px;
height: 224px;
position: absolute;
}
</style>
<script type="text/javascript">
var Drager = function () { };
Drager.dom = null;
Drager.selector = null;
Drager.prototype.xdrag = function (dom, selector) {
var obj = this;
obj.selector = selector;
dom.onmousedown = function (e) {
e = obj.getEvent(e);
e.preventDefault && e.preventDefault();
obj.dom = this;
obj.dom.x = e.clientX+$(window).scrollLeft() - obj.dom.offsetLeft;
obj.dom.y = e.clientY + $(window).scrollTop() - obj.dom.offsetTop;
document.onmousemove = function (e) { obj.move(e, obj); };
document.onmouseup = function (e) { obj.end(e, obj); };
};
};
Drager.prototype.getEvent = function (e) {
if (!e) {
e = window.event;
e.target = e.srcElement;
e.layerX = e.offsetX;
e.layerY = e.offsetY;
}
return e;
};
Drager.prototype.move = function (e,srcObj) { e = srcObj.getEvent(e);
var oLeft, oTop;
oLeft = e.clientX + $(window).scrollLeft() - srcObj.dom.x;
oTop = e.clientY + $(window).scrollTop() - srcObj.dom.y; if (srcObj.selector != null) {
if (oLeft > parseInt( srcObj.dom.style.left)) {
if (oLeft + $(srcObj.dom).outerWidth() > $(srcObj.selector).offset().left + $(srcObj.selector).outerWidth()) {
oLeft = $(srcObj.selector).offset().left + $(srcObj.selector).outerWidth() - $(srcObj.dom).outerWidth();
}
} else if (oLeft < parseInt(srcObj.dom.style.left)) {
if (oLeft < $(srcObj.selector).offset().left ) {
oLeft = $(srcObj.selector).offset().left ;
}
}
if (oTop > parseInt(srcObj.dom.style.top)) {
if (oTop + $(srcObj.dom).outerHeight() > $(srcObj.selector).offset().top + $(srcObj.selector).outerHeight()) {
oTop = $(srcObj.selector).offset().top + $(srcObj.selector).outerHeight() - $(srcObj.dom).outerHeight();
}
} else if (oTop < parseInt(srcObj.dom.style.top)) {
if (oTop < $(srcObj.selector).offset().top) {
oTop = $(srcObj.selector).offset().top;
}
}
}
srcObj.dom.style.left = oLeft + 'px';
srcObj.dom.style.top = oTop + 'px';
};
Drager.prototype.end = function (e,srcObj) {
e = srcObj.getEvent(e);
srcObj.dom = document.onmousemove = document.onmouseup = null;
}; var drag = new Drager();
</script>
<script type="text/javascript"> window.onload = function () {
var obj = document.getElementById('draggable');
//第二个参数是限制范围,可不填
drag.xdrag(obj,".container");
} </script>
</head>
<body>
<div class="container" style="width:800px;height:500px; background-color:red;">
<div id="draggable">这个可以拖动!</a></div>
</div> </body>
</html>
JS 拖动DIV 需要JQUERY 支持的更多相关文章
- JS拖动DIV布局
方法一: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- JS拖动div的原理
要实现移动窗体,首先要捕获三个参数:1.a = 鼠标点击时的坐标.2.b = 被移动窗体的左顶点坐标.3.c = 鼠标移动时的坐标.然后还要算出你鼠标无论点击窗体哪个位置,移动改变的都是 (d = 窗 ...
- javascript拖动div
div拖动代码,在用此代码之前,你可能需要将你需要拖动的元素style设置position: absolute; #textareaSavaDiv{ position: absolute; right ...
- HTML 通过js实现div的拖动效果
最近做项目,碰到一个问题,需要对div实现拖动效果. 在度娘找了很多,要么觉得代码太长,要么就是效果不理想,不过最后还是找到了一个不错的,感谢大神的留贴,方便了我们,就把代码贴下面了: <!DO ...
- JS实现拖动div层移动
JS实现拖动div层移动 在谈到拖动div层之前,我们有必要来了解下 下面JS几个属性的区别---- pageX,pageY,layerX,layerY,clientX,clientY,screen ...
- js实现可拖动Div
随着时代的变化,越来越感觉到js的重要性,js不仅可以做web页面(如Ext框架),还可以做一些web的特效,这些特效不仅兼容PC,而且兼容手机端,毕竟是基于浏览器的,和平台没关系.现在微软的wind ...
- jQuery 对AMD的支持(Require.js中如何使用jQuery)
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一个可用的模块化 JavaScript 的解决方案. AMD 模块格 ...
- 基于jquery的可拖动div
昨天给大家介绍了一款基于jquery ui漂亮的可拖动div实例,今天要给大家分享一款基于jquery的可拖动div.这款可拖动div只要引用jquery就可以,无需引用jquery ui.还实时记录 ...
- 一款基于jquery ui漂亮的可拖动div实例
今天要给大家带来一款基于jquery ui漂亮的可拖动div实例.这款实例用了图片当背景,div层采用了幽灵透明效果.div拖动是基于jquery ui的.界面非常漂亮.一起看下效果图: 在线预览 ...
随机推荐
- WinForm DataGridView增删改查
DataGridView连接数据库对表进行增删改查 一.绑定数据源 //做一个变量控制页面刷新 ; public Form1() { InitializeComponent(); } private ...
- SpringMVC通过实体类返回json格式的字符串,并在前端显示
一.除了搭建springmvc框架需要的jar包外,还需要这两个jar包 jackson-core-asl-1.9.2.jar和jackson-mapper-asl-1.9.2.jar 二.web,. ...
- GitLab Wiki 内容恢复版本管理
原来一直在网站上写Wiki文档, 最近手欠误删一篇文档, 想要恢复文档时才发现原来gitlab的Wiki是用git管理的从此再也不用为误删担心了 实现步骤: mac系统安装gollow brew in ...
- Eclipse运行时无法加载主类的解决方法
测试代码: package javastudy; class Person { public static void main(String[] args) { PersonCeshi pp=new ...
- Git 和 GitHub 使用
Git和GitHub的使用 Git是一款免费.开源的分布式版本控制系统. GitHub托管远程仓库,并提供一个web界面. 有2种协议支持从本地push代码到远程仓库. 一种是http,需要输入用户名 ...
- assign和weak的深层次解析
我们知道在设置类的属性时,控件一般中weak,对象一般用strong,数据类型一般使用assign,其中weak和assign都不会使计数器增加,那为什对象不可以使用assign呢? weak与ass ...
- Yarn init 命令在 Git Bash 中打开时的错误
最近一直在学习一些新的知识,ES5.ES6.Vue等,当然,作为程序,英文的阅读和听写能力也是要去学习的. 最近慕课网上的qbaty大神出了两套视频,分别是webpack和yarn,本着不断学习的精神 ...
- android学习19--Matrix.mapPoints作用
android图形的旋转,缩放,平移都是用matrix实现的.可以用mapPoints来计算一个点旋转,缩放,平移后的坐标.看下面例子. Matrix matrix = new Matrix(); m ...
- EFDB 基本规范&知识
public abstract class AccountRole //这是继承类型 { [Key] public int ID { get; set; } public bool isDisable ...
- webpack(四)处理 css\less\sass 样式
(一) 处理普通的.css 文件,需要安装 css-loader,style-loader .less 文件,需要安装 less-loader .sass 文件,需安装 less-loader np ...