<script src="js/jquery.js.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.9.1.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("div.containment-wrapper").draggable();
}); function setObjectInitPos(selector)
{
var cookies = getCookies();
$(selector).each(function(){
var left = parseFloat(cookies[$(this).attr("id")+"_Left"]);
var top = parseFloat(cookies[$(this).attr("id")+"_Top"]);
if(!isNaN(left))
$(this).css("left", left + "px");
if(!isNaN(top))
$(this).css("top", top + "px");
});
$(selector).draggable({
start:function(){},
drag:function(){},
stop:function(){
setCookie($(this).attr("id")+"_Left", $(this).css("left").replace("px",""),365);
setCookie($(this).attr("id")+"_Top", $(this).css("top").replace("px",""),365);
}
});
} function setCookie(name, value, daysToLive) {
var cookie = name + "=" + encodeURIComponent(value);
if (typeof daysToLive === "number")
cookie += "; max-age=" + (daysToLive*60*60*24);
document.cookie = cookie;
} function getCookies() {
var cookies = {};
var all = document.cookie;
if (all === "")
return cookies;
var list = all.split("; ");
for(var i = 0; i < list.length; i++) {
var cookie = list[i];
var p = cookie.indexOf("=");
var name = cookie.substring(0,p);
var value = cookie.substring(p+1);
value = decodeURIComponent(value);
cookies[name] = value;
}
return cookies;
}
</script>
<div id="div1" style="position:absolute;border:1px solid green;width:200px;height:30px;left:0px;top:0px;">
<img src="https://www.baidu.com/img/bdlogo.png" style="width:200px;height:30px;" />
</div>
<div id="div2" style="position:absolute;border:1px solid green;width:200px;height:30px;left:0px;top:40px;">
<img src="https://www.baidu.com/img/bdlogo.png" style="width:200px;height:30px;" />
</div>
<div id="div3" style="position:absolute;border:1px solid green;width:200px;height:30px;left:0px;top:80px;">
<img src="https://www.baidu.com/img/bdlogo.png" style="width:200px;height:30px;" />
</div>

下面是另一个自己写的方案,兼容性有一点问题:

    <script type="text/javascript">
$(function(){
setObjectMovable(document.getElementById("div1"));
setObjectMovable(document.getElementById("div2"));
setObjectMovable(document.getElementById("div3")); setCookie("a","1",1);
setCookie("b","2",1);
}); function setObjectMovable(obj)
{
$(obj).bind("mousedown",function(){
obj.startX = event.clientX;
obj.startY = event.clientY;
obj.drag = true;
obj.setCapture();
});
$(obj).bind("mousemove",function(){
if(obj.drag)
{
var chgX = event.clientX - obj.startX;
var chgY = event.clientY - obj.startY;
obj.startX = event.clientX;
obj.startY = event.clientY;
var newLeft = parseFloat($(obj).css("left").replace("px","")) + parseFloat(chgX);
var newTop = parseFloat($(obj).css("top").replace("px","")) + parseFloat(chgY);
$(obj).css("left", newLeft + "px");
$(obj).css("top", newTop + "px");
}
});
$(obj).bind("mouseup",function(){
obj.drag = false;
obj.releaseCapture();
});
} function setCookie(name, value, daysToLive) {
var cookie = name + "=" + encodeURIComponent(value);
if (typeof daysToLive === "number")
cookie += "; max-age=" + (daysToLive*60*60*24);
document.cookie = cookie;
} function getCookies() {
var cookies = {};
var all = document.cookie;
if (all === "")
return cookies;
var list = all.split("; ");
for(var i = 0; i < list.length; i++) {
var cookie = list[i];
var p = cookie.indexOf("=");
var name = cookie.substring(0,p);
var value = cookie.substring(p+1);
value = decodeURIComponent(value);
cookies[name] = value;
}
return cookies;
}
</script>

利用Jquery实现页面上div的拖动及位置保存的更多相关文章

  1. Banner中利用Jquery隐藏显示下方DIV块

    实现方式1: <!DOCTYPE html><html><head>    <meta charset="UTF-8">    &l ...

  2. 转载 * jQuery实现动态分割div—通过拖动分隔栏实现上下、左右动态改变左右、上下两个相邻div的大小

    由jQuery实现上下.左右动态改变左右.上下两个div的大小,需要自己引入jquery1.8.0.min.js包 可用于页面布局. //============================ind ...

  3. jQuery实现动态分割div—通过拖动分隔栏实现上下、左右动态改变左右、上下两个相邻div的大小

    由jQuery实现上下.左右动态改变左右.上下两个div的大小,需要自己引入jquery1.8.0.min.js包 可用于页面布局. //============================ind ...

  4. jquery实现DIV层拖动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. div随意拖动,基于jquery。

    $("#box").mousedown(function (e) { //e鼠标事件 var offset = $(this).position();//DIV在页面的位置 使用p ...

  6. 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...

  7. (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...

  8. 基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  9. 利用Jquery实现http长连接(LongPoll) {转}

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="JqueryAjaxLongPo ...

随机推荐

  1. Ubuntu安装Vim编辑器

    1 安装Vim编辑器 由于Ubuntu预安装的是tiny版本,就会导致我们在使用上的产生不便. 所以我们要安装vim的full版本. 1.1 卸载旧版vi sudo apt-get remove vi ...

  2. 转:画图解释 SQL join 语句

    画图解释 SQL join 语句 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看 ...

  3. iOS开发 Masonry的简单使用

    首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout     从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需 ...

  4. HTTP状态码及其含义

    下表显示了常见的HTTP 1.1状态代码以及它们对应的状态信息和含义.应当谨慎地使用那些只有HTTP 1.1支持的状态代码,因为许多浏览器还只能够支持HTTP 1.0.如果你使用了HTTP 1.1特有 ...

  5. redis.conf 配置详解 (转)

    # Redis 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)## 1k => 1000 bytes# 1kb => ...

  6. 高版本正方教务系统上传后缀过滤不严导致能直接上传Webshell

    在旧版本中有一个利用插件上传文件的漏洞,但是在新版本中已经没有了这个插件.这个漏洞是由于过滤不严造成的,可以直接上传Webshell进行提权,由于代码在DLL中,全国大部分高校均有此漏洞,影响范围很大 ...

  7. mysql 配置 utf8 依然乱码

    mysql 乱码问题排除方案: 1.检查数据库及数据表是不是utf8字符集 2.查看一下jdbc.properties配置的数据库url 是否配置了characterEncoding=UTF-8或者在 ...

  8. Octopus系列之js公共函数

    货币选择 ChangeCurrency(this.value) 示例 <select name="currency" id="sl_currency" c ...

  9. OC语言构造方法

    OC语言构造方法 一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法 ...

  10. cocos2d-x 中的基本概念

    在 cocos2d-x 开头配置(Windows 平台)中,介绍了新建工程,这篇就介绍下 cocos2d-x 的一些概念.(前提是需要有C++的面向对象的基本知识和C++11的常用知识) 层,场景,导 ...