JS實(shí)現(xiàn)移動(dòng)端觸屏拖拽功能
1.html
<div id="div1"></div>
2.css
* { margin: 0; padding: 0; } html, body { width: 100%; height: 100%; } #div1 { width: 50px; height: 50px; background: cyan; position: absolute; }
3.js
var div1 = document.querySelector('#div1'); //限制最大寬高,不讓滑塊出去 var maxW = document.body.clientWidth - div1.offsetWidth; var maxH = document.body.clientHeight - div1.offsetHeight; //手指觸摸開始,記錄div的初始位置 div1.addEventListener('touchstart', function(e) { var ev = e || window.event; var touch = ev.targetTouches[0]; oL = touch.clientX - div1.offsetLeft; oT = touch.clientY - div1.offsetTop; document.addEventListener("touchmove", defaultEvent, false); }); //觸摸中的,位置記錄 div1.addEventListener('touchmove', function(e) { var ev = e || window.event; var touch = ev.targetTouches[0]; var oLeft = touch.clientX - oL; var oTop = touch.clientY - oT; if(oLeft < 0) { oLeft = 0; } else if(oLeft >= maxW) { oLeft = maxW; } if(oTop < 0) { oTop = 0; } else if(oTop >= maxH) { oTop = maxH; } div1.style.left = oLeft + 'px'; div1.style.top = oTop + 'px'; }); //觸摸結(jié)束時(shí)的處理 div1.addEventListener('touchend', function() { document.removeEventListener("touchmove", defaultEvent); }); //阻止默認(rèn)事件 function defaultEvent(e) { e.preventDefault(); }
3.效果
4.幾點(diǎn)說明
對(duì)于觸屏手機(jī)端用手指事件,對(duì)于PC端用鼠標(biāo)事件,其實(shí)原理都一樣。
總結(jié)
以上所述是小編給大家介紹的JS實(shí)現(xiàn)移動(dòng)端觸屏拖拽功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JS實(shí)現(xiàn)的緩沖運(yùn)動(dòng)效果示例
這篇文章主要介紹了JS實(shí)現(xiàn)的緩沖運(yùn)動(dòng)效果,涉及JavaScript數(shù)值運(yùn)算與時(shí)間函數(shù)相關(guān)使用技巧,需要的朋友可以參考下2018-04-04一個(gè)頁面放2段圖片滾動(dòng)代碼出現(xiàn)沖突的問題如何解決
這是一段調(diào)用圖片流動(dòng)的代碼?為什么我在首頁同時(shí)復(fù)制出二段代碼后圖片不能流動(dòng)顯示了?遇此問題很是疑惑,于是搜集整理一些實(shí)用技巧以解大伙們的燃眉之急,需要了解的朋友可以參考下2012-12-12JS點(diǎn)擊動(dòng)態(tài)添加標(biāo)簽、刪除指定標(biāo)簽的代碼
這篇文章主要介紹了JS點(diǎn)擊動(dòng)態(tài)添加標(biāo)簽、刪除指定標(biāo)簽的代碼,在文中給大家補(bǔ)充介紹了js 更加輪播圖圖片張數(shù)動(dòng)態(tài)生成小圓點(diǎn)的方法,需要的朋友參考下實(shí)現(xiàn)代碼2018-04-04利用uniapp開發(fā)APP時(shí)的調(diào)試/安卓打包等詳解
uni-app??是一個(gè)使用??Vue.js開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,下面這篇文章主要給大家介紹了關(guān)于利用uniapp開發(fā)APP時(shí)的調(diào)試/安卓打包等的相關(guān)資料,需要的朋友可以參考下2022-12-12微信小程序 textarea 層級(jí)過高問題簡(jiǎn)單解決方案
這篇文章主要介紹了微信小程序 textarea 層級(jí)過高問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10微信小程序后端(java)開發(fā)流程的詳細(xì)步驟
這篇文章主要介紹了微信小程序后端開發(fā)流程的詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11最簡(jiǎn)單的JS實(shí)現(xiàn)json轉(zhuǎn)csv的方法
這篇文章主要介紹了最簡(jiǎn)單的JS實(shí)現(xiàn)json轉(zhuǎn)csv的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01JavaScript操作XML實(shí)例代碼(獲取新聞標(biāo)題并分頁,并分頁)
XML 代碼部分 這是一個(gè)新聞的XML 文件,如果 NBody部分包含 XML 和Html 不可識(shí)別部分, 就 包含在DATA 表示附中。2010-05-05