<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. python的class的__str__()和__repr__()函数

    repr(object) 返回一个可以用来表示对象的可打印字符串首先,尝试生成这样一个字符串,将其传给 eval()可重新生成同样的对象 否则,生成用尖括号包住的字符串,包含类型名和额外的信息(比如地 ...

  2. java读取配置文件中数据

    Properties pps=new Properties();        try {            pps.load(new FileInputStream("src/emai ...

  3. UIApplication sharedApplication详细解释-IOS

    iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示: int UIApplicationMain ( int argc, char *a ...

  4. TOSHIBA TEC EXT Printer Z-Mode

    Z-Mode functionality automatically converts the Zebra data stream into a TOSHIBA data stream (TPCL). ...

  5. HTML5和CSS3登录页面制作实录

    本文详细介绍使用HTML5 和CSS3 制作一个登录页面的完整过程. View demo login.html <form id="login"> <h1> ...

  6. java程序

    package Dome3; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import jav ...

  7. eclipse改变theme

    https://github.com/eclipse-color-theme/eclipse-color-theme.git https://github.com/eclipse-color-them ...

  8. 在FireFox中修改cookie

    一.安装Firebug插件(web开发中常用的调试工具) 1.打开菜单选择[附加组件] 2.搜索firebug,点击安装 3.安装完成    二.cookie的新建与编辑 1.选择cookies标签, ...

  9. 优雅的处理Android数据库升级的问题

    原始完成于:2015-04-27 19:28:22 提供一种思路,优雅的处理Android数据库升级的问题,直接上代码: 1 package com.example.databaseissuetest ...

  10. 【C语言学习】-06 函数

    函数分类.函数声明和定义.函数调用,形参实参.函数嵌套调用