日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

js實現(xiàn)簡易拖拽的示例

瀏覽:158日期:2024-04-14 13:06:20

簡易拖拽

目錄

代碼實例 代碼解析 scrollWidth,clientWidth,offsetWidth的區(qū)別 offsetX,clientX,pageX的辨析 下載源碼鏈接

代碼實例

<div style='background: #334;width: 100px;height: 100px;position: absolute;cursor: move;'></div>(function () { var dragging = false var boxX, boxY, mouseX, mouseY, offsetX, offsetY var box = document.getElementById(’box’) // 鼠標(biāo)按下的動作 box.onmousedown = down // 鼠標(biāo)的移動動作 document.onmousemove = move // 釋放鼠標(biāo)的動作 document.onmouseup = up // 鼠標(biāo)按下后的函數(shù),e為事件對象 function down(e) { dragging = true // 獲取元素所在的坐標(biāo) boxX = box.offsetLeft boxY = box.offsetTop // 獲取鼠標(biāo)所在的坐標(biāo) mouseX = parseInt(getMouseXY(e).x) mouseY = parseInt(getMouseXY(e).y) // 鼠標(biāo)相對元素左和上邊緣的坐標(biāo) offsetX = mouseX - boxX offsetY = mouseY - boxY } // 鼠標(biāo)移動調(diào)用的函數(shù) function move(e){ if (dragging) { // 獲取移動后的元素的坐標(biāo) var x = getMouseXY(e).x - offsetX var y = getMouseXY(e).y - offsetY // 計算可移動位置的大小, 保證元素不會超過可移動范圍 var width = document.documentElement.clientWidth - box.offsetWidth var height = document.documentElement.clientHeight - box.offsetHeight // min方法保證不會超過右邊界,max保證不會超過左邊界 x = Math.min(Math.max(0, x), width) y = Math.min(Math.max(0, y), height) // 給元素及時定位 box.style.left = x + ’px’ box.style.top = y + ’px’ } } // 釋放鼠標(biāo)的函數(shù) function up(e){ dragging = false } // 函數(shù)用于獲取鼠標(biāo)的位置 function getMouseXY(e){ var x = 0, y = 0 e = e || window.event if (e.pageX) { x = e.pageX y = e.pageY } else { x = e.clientX + document.body.scrollLeft - document.body.clientLeft y = e.clientY + document.body.scrollTop - document.body.clientTop } return { x: x, y: y } }})()

代碼解析

在 document 對象上綁定 mousemove 和 mouseup 事件,不在拖拽的元素上綁定是因為當(dāng)鼠標(biāo)移動太快而超出元素的范圍時會停止拖拽,而綁定在 document 上則可以避免這樣的事情發(fā)生。拖拽再快都不會超出 document 的范圍。

// 鼠標(biāo)按下的動作box.onmousedown = down// 鼠標(biāo)的移動動作document.onmousemove = move// 釋放鼠標(biāo)的動作document.onmouseup = up

HTMLElement.offsetLeft是一個只讀屬性,返回當(dāng)前元素左上角相對于HTMLElement.offsetParent 節(jié)點的左邊界偏移的像素值。

// 獲取元素所在的坐標(biāo)boxX = box.offsetLeftboxY = box.offsetTop

一般鼠標(biāo)的位置使用 pageX / pageY 獲取,但是 IE 不支持這兩個屬性。所以在 IE 中使用 event.clientX + document.body.scrollLeft - document.body.clientLeft; 獲取鼠標(biāo)的位置

if (e.pageX) { x = e.pageX y = e.pageY} else { x = e.clientX + document.body.scrollLeft - document.body.clientLeft y = e.clientY + document.body.scrollTop - document.body.clientTop}

scrollWidth,clientWidth,offsetWidth的區(qū)別

定義

scrollWidth:對象的實際內(nèi)容的寬度,不包括邊線寬度 clientWidth:對象內(nèi)容的可視區(qū)的寬度,不包括邊線寬度 offsetWidth:對象整體的實際寬度,包括滾動條等邊線

情況一

元素內(nèi)無內(nèi)容或者內(nèi)容不超過可視區(qū),滾動不出現(xiàn)或不可用 scrollWidth = clientWidth offsetWidth為元素的實際寬度

情況二

元素的內(nèi)容超過可視區(qū),滾動條出現(xiàn)和可用 scrollWidth > clientWidth offsetWidth為元素的實際寬度

offsetX,clientX,pageX的辨析

offsetX,offsetY

指鼠標(biāo)指針相對于觸發(fā)事件元素的左上角的偏移,在Chrome,Opera,Safari中指外邊緣,即將該元素邊框的寬度計算在內(nèi),firefox則不包含邊框值

pageX,pageY

指相對文檔窗口左上角的距離,不會隨滾動條移動

clientX,clientY

指相對于瀏覽器可視窗口左上角的距離,參照點會隨滾動條滾動而移動

下載源碼鏈接

星輝的Github

以上就是js實現(xiàn)簡易拖拽的示例的詳細內(nèi)容,更多關(guān)于js實現(xiàn)簡易拖拽的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人亚洲精品| 免费日韩av片| 欧美日韩精品一区二区三区视频| 蜜桃视频一区二区三区| 亚洲麻豆一区| 国产精品探花在线观看| 久久精品五月| 国产精品二区影院| 久久精品国产一区二区| 久久久久久夜| 人人精品亚洲| 亚洲中午字幕| 国产欧美88| 精品在线网站观看| 久久精品91| 久久亚洲国产精品一区二区| 亚洲另类黄色| 精品少妇一区| 亚洲精品一区二区妖精| 日韩欧美激情| 国产va在线视频| 亚洲精品国产偷自在线观看| 午夜av一区| 欧美日韩1区| 日韩欧美1区| 日韩一区精品字幕| 精品女同一区二区三区在线观看| 久久久蜜桃一区二区人| 丝袜国产日韩另类美女| 国产欧美日韩一级| 久久久久午夜电影| 日韩精品三级| 国产传媒在线| 久久香蕉精品| 久久女人天堂| 亚洲欧美日本日韩| 九九99久久精品在免费线bt| www.com.cn成人| 日韩中文字幕av电影| 麻豆久久久久久| 国产亚洲永久域名| 精品国产不卡一区二区| 蜜臀av一区二区在线免费观看| 国产精品永久| 亚洲欧洲日本mm| 精品国产a一区二区三区v免费| 亚洲激情中文| 国产精品99一区二区三区| 亚洲综合小说| 99久精品视频在线观看视频| 国产欧美日韩在线一区二区| 欧美日韩国产一区精品一区| 日本不卡视频在线观看| 蜜桃精品在线| 欧美日韩xxxx| 亚洲欧美久久| 欧美性感美女一区二区| 久久av导航| 香蕉久久一区| 在线一区免费| 在线看片福利| 国产日韩一区二区三区在线| av不卡在线看| 国产自产自拍视频在线观看| 91亚洲精品视频在线观看| re久久精品视频| 中文在线а√天堂| 久久蜜桃精品| 国产v日韩v欧美v| 国产欧美日韩精品高清二区综合区 | 欧美天堂视频| 国产精品视频首页| 日本亚洲视频在线| 中文在线一区| 婷婷综合网站| 亚洲一级特黄| 久久久久久黄| 久久久精品网| 色老板在线视频一区二区| 久久99免费视频| 日韩动漫一区| 亚洲精品一二| 日日夜夜免费精品视频| 亚洲综合欧美| 亚洲欧美日本国产专区一区| 激情综合亚洲| 激情综合在线| re久久精品视频| 国产韩日影视精品| 激情久久久久久久| 好看的av在线不卡观看| 午夜久久福利| 欧美日韩少妇| 午夜一区在线| 久久国产福利| 丝袜美腿成人在线| 亚洲男人在线| 日韩国产一二三区| 日韩av三区| 久久精品超碰| 久久精品99国产精品| 欧美日本精品| 精品三级国产| 久久国产欧美| 91九色精品| 爽好久久久欧美精品| 中文字幕av一区二区三区人 | 国产欧美一区二区三区国产幕精品 | 99久久99久久精品国产片果冰| 欧美sm一区| 欧美日韩在线网站| 亚洲少妇一区| 日韩不卡在线观看日韩不卡视频 | 久久人人88| japanese国产精品| 视频一区在线视频| 欧美一区91| 精品淫伦v久久水蜜桃| 日韩精品诱惑一区?区三区| 婷婷亚洲五月| 日韩精品亚洲专区| 久久精品国产999大香线蕉| 日本а中文在线天堂| 国内精品福利| 日本vs亚洲vs韩国一区三区二区| 日韩精品三级| 精品一区二区三区在线观看视频| 日韩电影免费网站| 亚洲一区导航| 精品日本视频| 91国语精品自产拍| 日韩国产91| 中文字幕在线视频网站| 日韩一级网站| 欧美成a人片免费观看久久五月天| 色在线视频观看| 亚洲精品护士| 亚洲精品福利电影| 亚洲综合婷婷| 超碰在线99| 免费在线观看视频一区| 国产精品视频一区二区三区| 亚洲一区资源| 综合日韩在线| 岛国av在线播放| 日韩欧美中文字幕在线视频| 成人欧美一区二区三区的电影| 巨乳诱惑日韩免费av| 精品国产不卡一区二区| 三级欧美在线一区| 国产欧美日韩在线观看视频| 欧美/亚洲一区| 麻豆久久久久久| 香蕉久久夜色精品国产| 国产在线看片免费视频在线观看| 水蜜桃久久夜色精品一区的特点| 精品亚洲a∨一区二区三区18| 国产视频一区三区| a国产在线视频| 国产欧美日韩一区二区三区四区 | 免费视频一区二区三区在线观看| 欧美日韩在线观看视频小说| 国产精品入口久久| 丝袜美腿高跟呻吟高潮一区| 国产精品国产三级国产在线观看| 中文无码日韩欧| 麻豆网站免费在线观看| 亚洲精品日本| 亚洲福利免费| 精品日本视频| 国产乱人伦丫前精品视频| 伊人久久成人| 黄色aa久久| 国产激情综合| 日本中文字幕一区二区| 99在线精品免费视频九九视| 新版的欧美在线视频| 国产精品黄色| 日韩av不卡一区二区| 老鸭窝毛片一区二区三区| 四虎884aa成人精品最新| 国产欧美日韩精品一区二区三区| 一区在线免费观看| 日韩av一级| 精品久久久久中文字幕小说| 日韩av资源网| 一区二区国产精品| 免费日韩av片| 国产精品日本| 在线国产一区二区| 蜜桃tv一区二区三区| 国产理论在线| 高清一区二区三区| 美女视频黄久久| 国产精品一区二区免费福利视频| 亚洲午夜免费| 视频一区二区国产| 久久亚洲风情| 亚洲天堂免费| 天堂精品久久久久|