原生js配合cookie制作保存路徑的拖拽
主要是運(yùn)用了原生js封裝了一個(gè)cookie,然后使用了三個(gè)事件做拖拽,分別是onmousedown,onmousemove,onmouseup,這三個(gè)事件其中兩個(gè)需要添加事件對(duì)象,也就是event,事件對(duì)象是一個(gè)不兼容的東西,所以需要處理兼容性的問(wèn)題,也就是oEvent = ev || event; 通過(guò)事件對(duì)象,獲取鼠標(biāo)點(diǎn)擊屏幕時(shí)的那個(gè)點(diǎn),然后減去被拖拽物體距離左邊的一個(gè)距離,最終就可以獲取到當(dāng)前點(diǎn)擊位置距離物體的距離。
最后在onmouseup的時(shí)候做了一個(gè)return false,主要是為了阻止在高版本瀏覽器下選中文字。通過(guò)cookie里面的addCookie方法,把物體拖動(dòng)停止時(shí)的位置存在了cookie里面,然后在頁(yè)面加載的時(shí)候就調(diào)用getCookie方法,取到物體所在的位置,也就做了一個(gè)用cookie存位置的拖拽。
如有下邊的html:
<div id="drag">拖動(dòng)我</div>
CSS:
#drag{width: 100px; height: 100px; background: red; position: absolute; top: 0; left: 0;cursor:move;}
使用用js實(shí)現(xiàn)拖動(dòng)的代碼如下:
function addCookie(name, value, iDay) {
var oDate = new Date();
oDate.setDate(oDate.getDate() + iDay);
document.cookie = name + '=' + value + '; path=/; expires=' + oDate;
}
function getCookie(name) {
var arr = document.cookie.split('; ');
for (var i = 0; i < arr.length; i++) {
var arr2 = arr[i].split('=');
return (arr2[0] == name) && arr2[1]
}
return '';
}
window.onload = function () {
var oDiv = document.getElementById('drag');
drag(oDiv);
var move_by = getCookie('move_cood');
if (move_by) {
var str = eval('(' + move_by + ')');
oDiv.style.left = str[0] + 'px';
oDiv.style.top = str[1] + 'px';
}
function drag(obj) {
obj.onmousedown = function (ev) {
var oEvent = ev || event;
var disX = oEvent.clientX - obj.offsetLeft,
disY = oEvent.clientY - obj.offsetTop;
document.onmousemove = function (ev) {
var oEvent = ev || event;
obj.style.left = oEvent.clientX - disX + 'px';
obj.style.top = oEvent.clientY - disY + 'px';
};
document.onmouseup = function () {
document.onmousemove = null;
document.onmouseup = null;
obj.releaseCapture && obj.releaseCapture();
addCookie('move_cood', '[' + obj.offsetLeft + ',' + obj.offsetTop + ']', 10);
};
obj.setCapture && obj.setCapture();
return false;
};
}
};
以上就是原生js配合cookie制作保存路徑的拖拽實(shí)現(xiàn)效果,希望對(duì)大家的學(xué)習(xí)有所啟發(fā)。
- javascript設(shè)置和獲取cookie的方法實(shí)例詳解
- js操作cookie保存瀏覽記錄的方法
- jquery.cookie.js用法實(shí)例詳解
- JS封裝cookie操作函數(shù)實(shí)例(設(shè)置、讀取、刪除)
- JS使用cookie實(shí)現(xiàn)DIV提示框只顯示一次的方法
- 通過(guò)Jquery.cookie.js實(shí)現(xiàn)展示瀏覽網(wǎng)頁(yè)的歷史記錄超管用
- JS利用cookie記憶當(dāng)前位置的防刷新導(dǎo)航效果
- JS基于cookie實(shí)現(xiàn)來(lái)賓統(tǒng)計(jì)記錄訪客信息的方法
- 詳談javascript中的cookie
- js簡(jiǎn)單設(shè)置與使用cookie的方法
相關(guān)文章
JS動(dòng)態(tài)增加刪除UL節(jié)點(diǎn)LI及相關(guān)內(nèi)容示例
這篇文章主要介紹了JS如何動(dòng)態(tài)增加刪除UL節(jié)點(diǎn)LI及相關(guān)內(nèi)容,需要的朋友可以參考下2014-05-05
微信小程序中使用 async/await的方法實(shí)例分析
這篇文章主要介紹了微信小程序中使用 async/await的方法,結(jié)合實(shí)例形式分析了微信小程序中async/await的功能、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
簡(jiǎn)單了解JavaScript操作XPath的一些基本方法
XPath構(gòu)建于XML之上,以表示路徑的方式來(lái)確定XML中元素位置,事實(shí)上并不是太常用,這里我們來(lái)簡(jiǎn)單了解JavaScript操作XPath的一些基本方法2016-06-06
詳解JS去重及字符串奇數(shù)位小寫(xiě)轉(zhuǎn)大寫(xiě)
本篇文章主要介紹了詳解JS去重及字符串奇數(shù)位小寫(xiě)轉(zhuǎn)大寫(xiě) ,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12
單行 JS 實(shí)現(xiàn)移動(dòng)端金錢(qián)格式的輸入規(guī)則
這篇文章主要介紹了單行 JS 實(shí)現(xiàn)移動(dòng)端金錢(qián)格式的輸入規(guī)則,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05
微信小程序?qū)崿F(xiàn)的五星評(píng)價(jià)功能示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)的五星評(píng)價(jià)功能,結(jié)合實(shí)例形式分析了微信小程序五星評(píng)價(jià)相關(guān)的界面布局、事件響應(yīng)等操作技巧,需要的朋友可以參考下2019-04-04

