当前位置: 首页 > 编程笔记 >

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

祁建业
2023-03-14
本文向大家介绍原生js配合cookie制作保存路径的拖拽,包括了原生js配合cookie制作保存路径的拖拽的使用技巧和注意事项,需要的朋友参考一下

主要是运用了原生js封装了一个cookie,然后使用了三个事件做拖拽,分别是onmousedown,onmousemove,onmouseup,这三个事件其中两个需要添加事件对象,也就是event,事件对象是一个不兼容的东西,所以需要处理兼容性的问题,也就是oEvent = ev || event; 通过事件对象,获取鼠标点击屏幕时的那个点,然后减去被拖拽物体距离左边的一个距离,最终就可以获取到当前点击位置距离物体的距离。

最后在onmouseup的时候做了一个return false,主要是为了阻止在高版本浏览器下选中文字。通过cookie里面的addCookie方法,把物体拖动停止时的位置存在了cookie里面,然后在页面加载的时候就调用getCookie方法,取到物体所在的位置,也就做了一个用cookie存位置的拖拽。

如有下边的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配合cookie制作保存路径的拖拽实现效果,希望对大家的学习有所启发。

 类似资料:
  • 本文向大家介绍原生JS实现拖拽效果,包括了原生JS实现拖拽效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JS实现拖拽效果的具体代码,供大家参考,具体内容如下 想要让整个元素移动需要三个事件: 鼠标按下 onmousedown 鼠标移动 onmousemove 鼠标抬起 onmouseup html JS CSS部分 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多

  • 本文向大家介绍js操作cookie保存浏览记录的方法,包括了js操作cookie保存浏览记录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js操作cookie保存浏览记录的方法。分享给大家供大家参考,具体如下: 说明:最近做了一个功能,记录用户浏览过的产品页面。我的思路是,客户每次进入产品页面,就自己调用JS把产品信息以json的形式保存到cookie里面。 浏览记录的显示是从co

  • 你可以在这个步骤设置导出的文件名和路径。 勾选你想导出的对象名旁的框。如果在对象窗格高亮显示了现有的表,它将会被自动勾选并指定一个默认的文件名和位置。“导出到”文本框内的扩展名会根据在第一步选择的导出类型而改变。 【注意】导出查询结果时,请确保在运行导出向导前保存查询。否则,这里不会显示源对象。 全选按钮 描述 全选或取消全选 选择或取消选择全部源对象。 导出已选择的到相同文件 导出已选择的表到相

  • 你可以在这个步骤设置导出的文件名和路径。点击“更改”按钮来更改默认的导出位置。 勾选你想导出的对象名旁的框。如果在对象窗格高亮显示了现有的对象,它将会被自动勾选。扩展名会根据在第一步选择的导出类型而改变。如果你导出已选择的对象到相同的目标文件,你可以按住 Control 键并点按网格,然后选择“导出已选择的到相同文件”。当文件格式是 Excel,每一个对象会导出为 Excel 文件内的一个工作表。

  • 你可以在这个步骤设置导出的文件名和路径。 勾选你想导出的对象名旁的框。如果在对象窗格高亮显示了现有的表,它将会被自动勾选并指定一个默认的文件名和位置。“导出到”文本框内的扩展名会根据在第一步选择的导出类型而改变。 【注意】导出查询结果时,请确保在运行导出向导前保存查询。否则,这里不会显示源对象。 全选按钮 描述 全选或取消全选 选择或取消选择全部源对象。 导出已选择的到相同文件 导出已选择的表到相

  • 本文向大家介绍原生js结合html5制作小飞龙的简易跳球,包括了原生js结合html5制作小飞龙的简易跳球的使用技巧和注意事项,需要的朋友参考一下 演示地址:http://runjs.cn/detail/yjpvqhal html代码 演示图片 以上所述就是本文的全部代码,希望大家能够喜欢。