电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

原生JS實現拖拽功能

瀏覽:91日期:2024-04-09 16:08:23

本文實例為大家分享了JS實現拖拽功能的具體代碼,供大家參考,具體內容如下

拖拽的原理:三個事件 onmousedown、onmousemove、onmousemove

1、鼠標按下,觸發onmousedown,獲取鼠標坐標x,y,獲取元素坐標x,y

通過event.clientX、event.clientY獲取鼠標位置的坐標

let x = e.clientX - box.offsetLeft; //鼠標點擊坐標距離盒子左邊緣的距離let y = e.clientY - box.offsetTop; //鼠標點擊坐標距離盒子上邊緣的距離

2、設置元素left、top值,(元素要設置position:absolute)

box.style.left = ev.clientX - x + ’px’;box.style.top = ev.clientY - y + ’px’;

3、放開鼠標取消dom事件

下面是詳細代碼:我只開了橫向移動

<!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>Document</title> <style> #box { width: 100px; height: 100px; background: red; position: absolute } </style></head> <body style='position: relative;overflow: hidden;'> <div id='box'> </div> <script> window.onload = function () { let box = document.getElementById(’box’) box.onmousedown = function (ev) { let e = ev || event; let x = e.clientX - box.offsetLeft; //鼠標點擊坐標距離盒子左邊緣的距離 let y = e.clientY - box.offsetTop; //鼠標點擊坐標距離盒子上邊緣的距離 document.onmousemove = function (ev) { let e = ev || event; box.style.left = ev.clientX - x + ’px’; box.style.top = ev.clientY - y + ’px’; let bodyScreenX = ev.screenX let bodyClientWidth = document.body.clientWidth document.onmouseup = function (ev) { if (ev.clientX - x < 0) { box.style.left = 0 } else if (bodyScreenX > bodyClientWidth) { box.style.right = 0 box.style.left = bodyClientWidth - 100 + ’px’ } document.onmousemove = null; document.onmouseup = null; } } } } </script></body> </html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 博医通医疗器械互联网供应链服务平台_博医通| 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 冲击式破碎机-冲击式制砂机-移动碎石机厂家_青州市富康机械有限公司 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 飞歌臭氧发生器厂家_水处理臭氧发生器_十大臭氧消毒机品牌 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 斗式提升机,斗式提升机厂家-淄博宏建机械有限公司 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 | 小小作文网_中小学优秀作文范文大全| vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | 净化工程_无尘车间_无尘车间装修-广州科凌净化工程有限公司 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 成都中天自动化控制技术有限公司 | 北京开源多邦科技发展有限公司官网 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 网站优化公司_SEO优化_北京关键词百度快速排名-智恒博网络 | 学习安徽网| 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 骨密度检测仪_骨密度分析仪_骨密度仪_动脉硬化检测仪专业生产厂家【品源医疗】 |