利用Jquery实现页面上div的拖动及位置保存
<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的拖动及位置保存的更多相关文章
- Banner中利用Jquery隐藏显示下方DIV块
实现方式1: <!DOCTYPE html><html><head> <meta charset="UTF-8"> &l ...
- 转载 * jQuery实现动态分割div—通过拖动分隔栏实现上下、左右动态改变左右、上下两个相邻div的大小
由jQuery实现上下.左右动态改变左右.上下两个div的大小,需要自己引入jquery1.8.0.min.js包 可用于页面布局. //============================ind ...
- jQuery实现动态分割div—通过拖动分隔栏实现上下、左右动态改变左右、上下两个相邻div的大小
由jQuery实现上下.左右动态改变左右.上下两个div的大小,需要自己引入jquery1.8.0.min.js包 可用于页面布局. //============================ind ...
- jquery实现DIV层拖动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- div随意拖动,基于jquery。
$("#box").mousedown(function (e) { //e鼠标事件 var offset = $(this).position();//DIV在页面的位置 使用p ...
- 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
http://www.cnblogs.com/wuhuacong/p/4085682.html 在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交, ...
- 基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录
最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...
- 利用Jquery实现http长连接(LongPoll) {转}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JqueryAjaxLongPo ...
随机推荐
- 数据库 基础篇2(mysql)
2.1MySQL入门 1)到mysql官网下载. 2)安装mysql软件 3)使用 验证是否成功 打开cmd -> 输入 mysql -u root -p 回车 -> 输入密码 ...
- 常用linux命令积累
------------------------------不定时更新------------------------------------------------- 1.Ubuntu关机:shut ...
- Django1.9开发博客(12)- i18n国际化
国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指 ...
- Android Genymotion无法启动
virtualbox无法启动,闷声作大死改了uxtheme.dll导致系统无法启动,正确的解决方法 关于在64位win7下运行Virtualbox安装系统时出错(提示VBoxDD.DLL错误)的解决方 ...
- 已知GBK的某段码表,码表对应的字符
for i in range(0xA1A2,0xA1A5): ...
- Linux服务器数据库的导入和导出
一.导出: 用mysqldump命令行 命令格式 mysqldump -u 用户名 -p 数据库名 > 数据库名.sql 范例: mysqldump -u root -p abc > ab ...
- JDE Develop Server分别安装DV PY PD后WEBSERVER问题
一般安装时一次性安装完DV\PY\PD环境后,再安装WEBSERVER时只需要修改一次配置文件即可,但如果先安装顺序如下: DV->WEBSERVER->PY 此时,配置程序被初始化,必须 ...
- cppcheck 下载与安装(Liunx)
下载网址:https://sourceforge.net/projects/cppcheck/files/cppcheck/ 选择安装包:cppcheck-1.75.tar.gz 解压安装包:tar ...
- 解决ajax中文乱码问题
主要遇到的问题: 一.ajax向服务器提交的数据有中文,没有设置编码方式.造成服务器接收到乱码 二.服务器向ajax返回数据中有中文,没有设置响应编码方式,造成ajax接收到乱码 乱码产生的原因:不管 ...
- ionic本质
ionic本质一开发工具,ionic项目目录里在大堆东西,一堆插件(plugins),还有一堆npm包(node_modules),其实都是骗人的-( ̄▽ ̄-)~ 什么nodejs,npm只是为了解决 ...