欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生js配合cookie制作保存路徑的拖拽

 更新時(shí)間:2015年12月29日 08:43:57   投稿:lijiao  
這篇文章主要介紹了原生js配合cookie制作保存路徑的拖拽效果,感興趣的小伙伴們可以參考一下

主要是運(yùn)用了原生js封裝了一個(gè)cookie,然后使用了三個(gè)事件做拖拽,分別是onmousedown,onmousemove,onmouseup,這三個(gè)事件其中兩個(gè)需要添加事件對(duì)象,也就是event,事件對(duì)象是一個(gè)不兼容的東西,所以需要處理兼容性的問題,也就是oEvent = ev || event; 通過事件對(duì)象,獲取鼠標(biāo)點(diǎn)擊屏幕時(shí)的那個(gè)點(diǎn),然后減去被拖拽物體距離左邊的一個(gè)距離,最終就可以獲取到當(dāng)前點(diǎn)擊位置距離物體的距離。

最后在onmouseup的時(shí)候做了一個(gè)return false,主要是為了阻止在高版本瀏覽器下選中文字。通過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ā)。

相關(guān)文章

最新評(píng)論