亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

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

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

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

拖拽功能的實現原理:(直接拿走!)

<!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
相關文章:
主站蜘蛛池模板: 女性无套免费网站在线看 | 亚洲第一色网 | 国产精品免费一级在线观看 | 欧美日韩一区二区三区免费不卡 | 国产精品欧美视频另类专区 | 国产精品久久久久三级 | 欧美视频一二三区 | 在线视频中文字幕 | 人妖欧美一区二区三区四区 | 一级特黄性色生活片一区二区 | 精品日本久久久久久久久久 | 国产一区二区三区高清视频 | 波多野结衣中文一区二区免费 | 特级毛片www欧美 | 亚洲精品久久久久久久无 | 美女喷水网站 | 日韩在线不卡一区在线观看 | 成人高清无遮挡免费视频软件 | 美女日韩在线观看视频 | 在线观看人成午夜影片 | 日本特级视频 | 久久久小视频 | 欧美观看一级毛片 | 欧美精品一区二区三区视频 | 男人好大好硬好爽免费视频 | 欧美精品v日韩精品v国产精品 | 国产草草影院ccyycom软件 | 亚洲国产tv | 成年人在线免费网站 | 亚洲 自拍 另类 欧美 综合 | 夜色www| 久久国产视频网 | 综合久久一区二区三区 | 亚洲国产精久久久久久久 | 欧美激情毛片裸推荐 | 欧美久久久久久久一区二区三区 | 成人国产精品免费软件 | 成人网18免费软件大全 | 久久在线| 成人看片在线观看免费 | 美女扒开腿让男生桶爽网站 |