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

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

js面向對象方式實現拖拽效果

瀏覽:121日期:2024-04-04 16:42:57

本文實例為大家分享了js面向對象方式實現拖拽的具體代碼,供大家參考,具體內容如下

拖拽功能的實現原理:(直接拿走?。?/p>

<!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 { position: absolute; left: 100px; top: 100px; width: 100px; height: 100px; background: red; } #box2 { position: absolute; left: 200px; top: 200px; width: 100px; height: 100px; background: green; } </style></head><body> <div id='box'>文字</div> <div id='box2'>文字</div></body><script> class Drag { startMouse = {}; startEl = {}; #el = null; constructor(el, option) { this.#el = el; this.option = option; this.start(); } start() { let move = (e) => {this.move(e) } this.#el.addEventListener(’mousedown’, (e) => {this.startMouse = { x: e.clientX, y: e.clientY,}this.ondragstart && this.ondragstart(e)this.startEl = this.getOffset();document.addEventListener(’mousemove’, move);document.addEventListener(’mouseup’, (e) => { document.removeEventListener(’mousemove’, move); this.end(e);}, { once: true})e.preventDefault(); }) } move(e) { let nowMouse = {x: e.clientX,y: e.clientY, } let disMouse = {x: nowMouse.x - this.startMouse.x,y: nowMouse.y - this.startMouse.y } this.ondrag && this.ondrag(e) this.setOffset(disMouse) } end(e) { this.ondragend && this.ondragend(e) } getOffset() { return {x: parseFloat(getComputedStyle(this.#el)['left']),y: parseFloat(getComputedStyle(this.#el)['top']) } } setOffset(dis) { this.#el.style.left = this.startEl.x + dis.x + ’px’ this.#el.style.top = this.startEl.y + dis.y + ’px’ } } let box = document.querySelector('#box'); let box2 = document.querySelector('#box2'); let d = new Drag(box); let d2 = new Drag(box2); let clonex = null; d2.ondragstart = (e) => { clonex = box2.cloneNode(true); document.body.appendChild(clonex) box2.style.opacity = 0.5 } d2.ondragend = () => { document.body.removeChild(clonex); box2.style.opacity = 1 }</script></html>

最終效果(拖動的為綠色塊)

js面向對象方式實現拖拽效果

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | LED显示屏_LED屏方案设计精准报价专业安装丨四川诺显科技 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 巨野月嫂-家政公司-巨野县红墙安康母婴护理中心 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 电镀整流器_微弧氧化电源_高频电解电源_微弧氧化设备厂家_深圳开瑞节能 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏| 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 英超直播_英超免费在线高清直播_英超视频在线观看无插件-24直播网 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 压缩空气检测_气体_水质找上海京工-服务专业、价格合理 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 江西自考网-江西自学考试网| 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 超声波反应釜【百科】-以马内利仪器 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 棕刚玉_白刚玉_铝酸钙-锐石新材料 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 |