cookie结合js 实现记住的拖拽
哈喽!!!我胡汉三又回来啦!!!有木有记挂挪啊!咱们今天说一个
cookie结合JS的小案例哦!
话不多说直接上代码:
<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
<style>
#drag {
width: 200px;
height: 200px;
text-align: center;
line-height: 200px;
background: greenyellow;
position: absolute;
top: 0;
left: 0;
cursor: pointer;
}
</style>
</head> <body>
<div id="drag">我竟然Σ(っ°Д°;)っ被拖走了!</div>
</body>
<script>
function addCookie(name, value, iDay) {
var oDate = new Date();
oDate.setDate(oDate.getDate() + iDay);
document.cookie = name + '=' + value + '; path=/; expires=' + oDate;
} //页面加载的时候调用getCookie方法
//获取cookie
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; //预防鼠标放上去的时候还会移动
//releaseCapture 鼠标的捕获和释放
obj.releaseCapture && obj.releaseCapture(); //通过addCookie方法,把物体拖动停止的位置存在了cookie里面
addCookie('move_cood', '[' + obj.offsetLeft + ',' + obj.offsetTop + ']', 10);
};
//捕获鼠标
obj.setCapture && obj.setCapture();
//阻止选中文字
return false;
};
}
};
</script> </html>
就是这样滴!!!你学会了吗???
cookie结合js 实现记住的拖拽的更多相关文章
- js div浮动层拖拽效果代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 纯JS Web在线可拖拽的流程设计器
F2工作流引擎之-纯JS Web在线可拖拽的流程设计器 Web纯JS流程设计器无需编程,完全是通过鼠标拖.拉.拽的方式来完成,支持串行.并行.分支.异或分支.M取N路分支.会签.聚合.多重聚合.退回. ...
- js 实现table表格拖拽和点击表头升降序排序
js 实现table表格拖拽和点击表头升降序排序,写的比较乱,用的时候可以把其中的一些模块函数提取出来 样式,由于是可拖拽表格,所以样式 table tr th{cursor:move;} js实现 ...
- 通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽
前言 关于讲解 JS 的拖拽功能的文章数不胜数,我确实没有必要大费周章再写一篇重复的文章来吸引眼球.本文的重点是讲解如何在某些特定的元素上禁止拖拽.这是我在编写插件时遇到的问题,其实很多插件的拖拽功能 ...
- jQuery UI =>jquery-ui.js中sortable方法拖拽对象位置偏移问题
今天要处理sortable方法处理的对象,拖拽的时候,位置偏移的问题. 按理应该是鼠标在哪,对象就跟着在哪的 百度了一下问题,http://blog.csdn.net/samed/article/de ...
- JS利用 Sea.js 实现模块化:拖拽、缩放及范围限制
知识点总结: Sea.js的使用:define.export.seajs.use.require等方法: 参考:http://seajs.org/docs/ Sea.js与require.js的区 ...
- 原生js实现Canvas实现拖拽式绘图,支持画笔、线条、箭头、三角形和圆形等等图形绘制功能,有实例Demo
前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 演示地址:查看演示DEMO 新版本支持IE5+(你没看错,就是某软的IE浏览器)以上任意浏览器的Canvas绘图:htt ...
- 原生js实现模块来回拖拽效果
代码比较冗余,还没来得及做整理,往见谅. 主要用到的 JS 事件有: onmousedown:鼠标点下事件 onmousemove:鼠标移动事件 onmouseup:鼠标放开事件 具体代码如下: &l ...
- JS 弹出框拖拽
css代码 body { margin:; text-align: center; } .box { display: none; background-color: #fff !important; ...
随机推荐
- centos7 systemd 必知必会
systemd 简介: systemd 是一个 Linux 系统基础组件的集合, 提供了一个系统和服务管理器, 运行为 PID 1 并负责启动其它程序 功能包括: 1.支持并行化任务 2.同时采用 s ...
- 微信小程序 没有找到node_modules目录 ,小程序引入vant框架报错。
如果大家是按照官网的引入方法,是否报错如图 不着急,大家就试试我的方法吧!两步走完美搞定! 第一步: 在小程序顶部点击设置->项目设置,会弹出下面的窗口.大家把使用npm模块勾上对勾. 第二步: ...
- JavaWeb学习笔记(二十一)—— 监听器Listener
一.监听器概述 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 ServletRequest等域对 ...
- 1093 字符串A+B (20 分)
#include <iostream> using namespace std; int main() { int n; string s1, s2; getline(cin,s1); g ...
- python全栈开发_day8_文件的多种读写方式及游标
一:文件的多种读写方式 主方式:w r a 从方式:t b + 了解方式:x u 1)按t(按照字符进行操作): with open("data_1.txt& ...
- <div>标签输入文字
@*输入框,contenteditable="true"使能div可以输入文字*@ <div contenteditable="true" class=& ...
- 【车联网T-BOX】基于CANoe实现的远程服务业务自动化测试方案
为满足项目过程中不同阶段绝大部分测试需求,更方便快捷构造测试场景,支持异常场景测试.更早介入,不依赖周边ECU的稳定情况,专注于被测ECU.更经济,不加油,不充电,时间节省,物料节省等维度考虑.我们需 ...
- ThinkPHP重写路由,掩藏public/index.php
在thinkPHP项目中,为了掩藏 public/index.php 路径时,需要修改相关的 Apache httpd.confi 文件.ThinkPHP .htaccess文件 修改 Apache ...
- VR内容是如何制作的!
VR全景视频作为一种新型的视频方式,其震撼效果是毋庸置疑的.目前市场上的VR全景视频也不在少数,越来越多的人能够欣赏到精彩的内容. 首先呢, VR内容场景的呈现分为两种情况: 1.实景拍摄 2.3D建 ...
- SQL Server 2005 中的分区表和索引
SQL Server 2005 中的分区表和索引 SQL Server 2005 69(共 83)对本文的评价是有帮助 - 评价此主题 发布日期 : 3/24/2005 | 更新 ...