Javascript 简单实现鼠标拖动DIV

Javascript简单的实现鼠标拖动DIV的效果。没有什么技术含量,全当笔记。
要想实现鼠标拖动效果,免不了要计算元素在浏览器中的坐标,那首先来学习一下各种坐标。
参考:
[url="http://blog.csdn.net/justoneroad/article/details/8028282"]Javascript获取页面的各种坐标汇总[/url]

实现拖动:
1.定义需要的变量

var bool=false,
pageX=0,
pageY=0,

//需要拖动的目标DIV
element = $("#tb_window"),
eWidth = element.width(),
eHeight = element.height(),

//在该DIV的范围内拖动
pElement = $("#flashFrame"),
pWidth = pElement.width(),
pHeight = pElement.height();


2.鼠标mousedown事件计算鼠标焦点x相对目标DIV的坐标

element.mousedown(function(event)
{
needMove=true;
var position = element.position();
pageX = event.pageX-position.left; //鼠标和DIV的相对坐标
pageY = event.pageY-position.top;

element.css('cursor','move');
});


3.鼠标mouseup事件将变量needMove赋值false,表示不需要移动DIV

element.mouseup(function(event)
{
needMove=false;
});


4.鼠标的mousemove事件开始移动目标DIV

element.mousemove(function(event)
{
if(!needMove) {return;}

//鼠标在页面的坐标 - 鼠标和DIV的相对坐标 = DIV在页面的坐标
var ePageX = event.pageX;
var ePageY = event.pageY;

var x = ePageX-pageX;
var y = ePageY-pageY;
if (ePageX <= eWidth/ 2 || ePageX >= pWidth - eWidth / 2)
{
return;
}

if (ePageY< eHeight / 2 || ePageY >= pHeight - eHeight / 2)
{
return;
}
element.css("left", x);
element.css("top", y);
});


5.总结,以上代码只是简单实现鼠标拖动DIV的思路(当然功能也是可以的),具体的性能,兼容性和代码扩展性都有待商榷。比如:还可以增加参数控制DIV在指定的大小范围内拖动等。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值