金狮镖局 Design By www.egabc.com
本文实例为大家分享了JavaScript实现拖拽功能的具体代码,供大家参考,具体内容如下
盒子拖拽—运用到的有onmousedown事件,onmousemove事件以及onmouseup事件
1、当鼠标点击下去的时候我们需要获取鼠标所在位置的横纵坐标,然后获取盒子的离页面的横纵方向的距离
2、计算出鼠标相对盒子的距离
3、当鼠标移动的时候,获取鼠标移动的距离,在永鼠标此刻的位置减去鼠标相对盒子的距离,获得的是盒子此刻的坐标位置
4、将这个位置赋值给盒子
5、鼠标抬起,清除鼠标移动事件;
代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>鼠标拖拽</title> <style> .box{ background-color: pink; width:200px; height:200px; border-radius: 50%; position: absolute; top:20px; left:100px; } </style> </head> <body> <div class="box"> </div> <script> window.onload = function(){ var box = document.getElementsByClassName('box')[0]; function drag (ele){ ele.onmousedown = function(e){ var e = e || window.event; //此处是为了兼容IE,因为IE中事件对象是作为全局对象( window.event )存在的; var pageX = e.pageX || e.clientX + document.documentElement.scrollLeft; var pageY = e.pageY || e.clientY + document.documentElement.scrollTop; //获取鼠标相对盒子的位置; var boxX = pageX - box.offsetLeft; var boxY = pageY - box.offsetTop; document.onmousemove = function(e){ var e = e || window.event; var pageX = e.pageX || e.clientX + document.documentElement.scrollLeft; var pageY = e.pageY || e.clientY + document.documentElement.scrollTop; //将鼠标当前的坐标值减去鼠标相对盒子的位置,得到盒子当时的位置并将其赋值给盒子,实现移动效果 box.style.left = pageX - boxX +'px'; box.style.top = pageY - boxY + 'px'; } }; document.onmouseup = function () { //清除盒子的移动事件; document.onmousemove = null; }; } ; drag(box) } </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
js,拖拽
金狮镖局 Design By www.egabc.com
金狮镖局
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
金狮镖局 Design By www.egabc.com
暂无JavaScript实现拖拽功能的评论...
更新日志
2024年10月09日
2024年10月09日
- 腾讯音乐人《浪漫火焰(新势力计划合辑 Vol.11)[FLAC/分轨][147.45MB]
- 2024年,哪里还可以玩有趣的魔兽RPG?
- 类银河恶魔城动作游戏《灵魂熔解》已正式登陆Steam
- 国庆七天总票房破20亿!《志愿军》8亿票房超速领跑!
- 绝区零轰隆隆驶向日落任务攻略 怎么完成
- dnf手游浩瀚星海神秘武器介绍 沧海长风武器升级
- 初音未来缤纷舞台国服预约开启 上线时间一览
- s14全球总决赛瑞士轮抽签结果是什么 S14瑞士轮抽签结果详情
- gam是哪个国家的队 s14世界赛gam战队国家赛区介绍
- s14全球世界赛主题是什么 英雄联盟s14世界赛最新主题介绍
- 鉴宝博主半年涨粉1500万 鉴宝成网友新晋电子榨菜
- 重大里程碑!《底特律 化身为人》销量突破1000万套
- 网友总结游戏业界七宗罪厂商:暴食的微软 傲慢的育碧
- 棒棒堂.2007-哪里怕(引进版)【EMI百代】【WAV+CUE】
- 邓丽君.2024-美好世界8CD(日本唱片志限量编号版)【环球】【WAV+CUE】