元素拖拽到另一个地方
来源:互联网 发布:lrc制作软件 编辑:程序博客网 时间:2024/06/10 06:18
很多时候,发现页面弹出的显示框能够挪动,如何实现呢?
其实就是事件监听罢了。
思路:1,因为可以拖动,所以该元素的定位是绝对定位而不是相对定位;
2,当鼠标按下时才可以拖动,需要鼠标点击动作,onmousedown;
3,鼠标移动时元素跟随鼠标移动,onmousemove;
4,鼠标抬起时元素不在可以拖动;onmouseup;
5,鼠标移动的横纵长度可用鼠标移动中得到坐标减去该元素的left和top值。
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style></style>
</head>
<body>
<div class="move-container">
<div class="move" style="position:absolute; width:100px; height:100px; background:gray">
</div>
</div>
<script>
var moveElem = document.querySelector('.move'); //待拖拽元素
var dragging; //是否激活拖拽状态
var tLeft, tTop; //鼠标按下时相对于选中元素的位移
//监听鼠标按下事件
document.addEventListener('mousedown', function(e) {
if(e.target == moveElem) {
dragging = true; //激活拖拽状态
var moveElemRect = moveElem.getBoundingClientRect();
tLeft = e.clientX - moveElemRect.left; //鼠标按下时和选中元素的坐标偏移:x坐标
tTop = e.clientY - moveElemRect.top; //鼠标按下时和选中元素的坐标偏移:y坐标
}
});
//监听鼠标放开事件
document.addEventListener('mouseup', function(e) {
dragging = false;
});
//监听鼠标移动事件
document.addEventListener('mousemove', function(e) {
if(dragging) {
var moveX = e.clientX - tLeft,
moveY = e.clientY - tTop;
moveElem.style.left = moveX + 'px';
moveElem.style.top = moveY + 'px';
}
});
</script>
</body>
</html>
- 元素拖拽到另一个地方
- 水一杯 -- 另一个查资料的地方(除了msdn)
- 安卓 在任意地方启动另一个AP…
- MVC 用户只能登陆一次 另一个地方登陆强制下线
- E元素团队梦开始的地方。。。
- STL删除元素要注意的地方
- 利用Java代码实现把一个文件从一个地方剪切到另一个地方
- Java实现文本、图片、视频的拷贝(从一个地方拷贝到另一个地方)
- Java 练习把一个文件从一个地方剪切到另一个地方
- jquery 设置元素相对于另一个元素的top值
- 鼠标悬停,出现另一个元素,点击这个元素的解决方法
- 鼠标悬停,出现另一个元素,点击这个元素的解决方法
- css元素hover時控制另一个元素的显示隐藏
- jQuery实现点击元素以外的地方隐藏该元素
- 点击元素外的地方,隐藏该元素
- silverlight ”元素已经是另一个元素的子元素“ 错误解决方法
- 用js判断一个元素是否为另一个元素的子元素
- jQuery判断一个元素是否是另一个元素的子元素(或其自身)
- fget用法详解
- none和hidden设置元素不可见的区别
- BZOJ 1066 蜥蜴 (拆点网络流)
- JavaSe——9、Map家族
- ContentProvider共享数据学习笔记(一)
- 元素拖拽到另一个地方
- 提取图中激光位置的坐标
- 51Nod-1134 最长递增子序列
- 从概率论到统计学
- Linux 系统编程--fcntl()读写锁实例
- java中ssm三层
- Centos之压缩和解压缩命令
- 一个软件工程产品的特性
- idea maven ssm框架搭建《一》