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


Posted in Javascript onDecember 29, 2015

主要是运用了原生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制作保存路径的拖拽实现效果,希望对大家的学习有所启发。

Javascript 相关文章推荐
JS 图片缩放效果代码
Jun 09 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
Apr 07 Javascript
angularjs实现与服务器交互分享
Jun 24 Javascript
jquery中EasyUI实现异步树
Mar 01 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
JavaScript运算符小结
Jun 03 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Dec 14 Javascript
AngularJS 支付倒计时功能实现思路
Jun 05 Javascript
基于JS实现网页中的选项卡(两种方法)
Jun 16 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
Jun 15 Javascript
新版小程序登录授权的方法
Dec 12 Javascript
一种新的javascript对象创建方式Object.create()
Dec 28 #Javascript
JavaScrip常见的一些算法总结
Dec 28 #Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 #Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
Dec 28 #Javascript
Bootstrap实现响应式导航栏效果
Dec 28 #Javascript
基于jQuery实现选取月份插件附源码下载
Dec 28 #Javascript
浅析AngularJs HTTP响应拦截器
Dec 28 #Javascript
You might like
PHP4实际应用经验篇(2)
2006/10/09 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
JavaScript 面向对象之命名空间
2010/05/04 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
python从入门到精通(DAY 3)
2015/12/20 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
马来西亚网上购物:Youbeli
2018/03/30 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
最新的咖啡店创业计划书
2013/12/30 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
单位授权委托书范本
2014/09/26 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
新员工入职欢迎词
2015/01/23 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers