> 웹 프론트엔드 > JS 튜토리얼 > 쿠키와 결합된 네이티브 JS는 저장 path_javascript 기술의 드래그 앤 드롭을 생성합니다.

쿠키와 결합된 네이티브 JS는 저장 path_javascript 기술의 드래그 앤 드롭을 생성합니다.

WBOY
풀어 주다: 2016-05-16 15:22:52
원래의
1566명이 탐색했습니다.

주로 네이티브 js를 사용하여 쿠키를 캡슐화한 다음 드래그 앤 드롭을 위해 세 가지 이벤트, 즉 onmousedown, onmousemove, onmouseup, 이 세 가지 이벤트 중 두 가지를 추가해야 합니다. 이벤트 객체, 즉 이벤트입니다. 이벤트 객체는 호환되지 않는 것이므로 호환성 문제를 처리해야 합니다. 즉, oEvent = ev || 화면에서 드래그한 개체의 왼쪽에서 거리를 빼면 마지막으로 현재 클릭 위치에서 개체까지의 거리를 얻을 수 있습니다.

마지막으로 상위 버전 브라우저에서 텍스트가 선택되는 것을 방지하기 위해 onmouseup 중에 false 반환이 이루어졌습니다. 쿠키의 addCookie 메소드를 통해 객체가 드래그되어 정지된 위치를 쿠키에 저장한 후 페이지가 로드되면 getCookie 메소드를 호출하여 객체의 위치를 ​​가져오고, 이를 이용한 드래그 앤 드롭이 가능합니다. 위치를 저장하는 쿠키가 생성됩니다.

다음 html이 있는 경우:

<div id="drag">拖动我</div>
로그인 후 복사

CSS:

#drag{width: 100px; height: 100px; background: red; position: absolute; top: 0; left: 0;cursor:move;}
로그인 후 복사

js를 이용하여 드래그하는 코드는 다음과 같습니다.

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의 드래그 앤 드롭 효과로 모든 사람의 학습에 영감을 주기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿