Javascript 简单实现鼠标拖动DIV
Javascript简单的实现鼠标拖动DIV的效果。没有什么技术含量,全当笔记。
要想实现鼠标拖动效果,免不了要计算元素在浏览器中的坐标,那首先来学习一下各种坐标。
参考:
Javascript获取页面的各种坐标汇总
实现拖动:
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在指定的大小范围内拖动等。
相关推荐
nmgxzm00 2020-11-10
ifconfig 2020-10-14
hhanbj 2020-11-17
zfszhangyuan 2020-11-16
古叶峰 2020-11-16
一个智障 2020-11-15
jipengx 2020-11-12
81427005 2020-11-11
xixixi 2020-11-11
游走的豚鼠君 2020-11-10
苗疆三刀的随手记 2020-11-10
Web卓不凡 2020-11-03
小飞侠V 2020-11-02
帕尼尼 2020-10-30
爱读书的旅行者 2020-10-26
帕尼尼 2020-10-23
杏仁技术站 2020-10-23
淼寒儿 2020-10-22