jQuery实现拖拽页面元素并将其保存到cookie的方法


Posted in Javascript onJune 12, 2016

本文实例讲述了jQuery实现拖拽页面元素并将其保存到cookie的方法。分享给大家供大家参考,具体如下:

实现的效果就是页面内的图片可拖拽到任意位置,并将所在位置保存.下次打开页面依然可见.本文是作demo用,实际开发中,位置的数据应保存到数据库中

好了,开始

1.准备工作

a.jquery(1.7.2),ui,cookie插件,json插件.一些图片(本文是5张)

2.页面

上代码

<div class="img_list" id="img_list">
<div id="baidu"><img src="img/baidu.jpg" id="www.baidu.com"></div>
<div id="google"><img src="img/google.png" id="www.google.com"></div>
<div id="csdn"><img src="img/csdn.jpg" id="www.csdn.net"></div>
<div id="fly"><img src="img/fly.jpg" id="www.jfbcb.com"></div>
<div id="163"><img src="img/163.jpg" id="www.163.com"></div>
</div>

接下,先为每个img的父元素增加draggable,并且动态改变id,这样便于记录时减少工作量.当然,先得给它来2个事件,mouseenter,mouseleave.代码如下

$("#img_list div").on({
mouseenter: function(){
      $(this).addClass('img_move');
      _t_id =$(this).attr('id');//保存原来id
      $('div.img_move').attr('id','img_move');
},
mouseleave: function(){
       $('#img_move').removeClass('img_move').attr('id',_t_id);
      _t_id = '';//清空,临时保存id
    }
});

到目前为止,我们已实现动态加载id,下面重点来了,让div可拖拽

只要在mouseenter事件中加上这句就行,这样当鼠标进入某块div时,div就变成可拖拽的了

$( "#img_move").draggable();

3.拖拽后的保存

如果,你刷新页面会发现,刚拖拽的图片,会恢复到初始位置.这个肯定不行,于是,保存就成了必须.实际开发一定要保存到数据库,因为,客户要是清空了cookie效果全部没有了...坑爹的360常干这事

这里除了cookie还要用到json插件,这样保存的时候会方便并且把拖拽后元素的信息储备到同一个对象中,便于读取

上代码

$( "#img_move").draggable({
   start:function(e,ui){
   ui.helper.css('z-index','999'); //拖动时元素一直是不被遮蔽
   },
   stop:function(e,ui){
    ui.helper.css('z-index','0'); //拖动结束,让元素可遮蔽
    var x = ui.position.left ;
    var y = ui.position.top;
    var id = _t_id;
    var temp = {'id':id,'x':x,'y':y};
    var _data = $.toJSON(temp);//转成json
    $.cookie('img_list_'+_t_id,_data,{expires:1}); //保存信息,设置有效时间
    }
});

ps:元素在页面中的位置,简单的说是left,top的值决定的

4.刷新后载入

window.onload后把cookie保存的信息读出来,并赋到对应元素上

window.onload = function(){
  fix_img('baidu');
    fix_img('google');
    fix_img('csdn');
    fix_img('fly');
    fix_img('163');
  };
//fix_img
function fix_img(id){
 if(id){
   var _test_data = $.cookie('img_list_'+id);
   var _id = $.evalJSON(_test_data).id;
   var _x = $.evalJSON(_test_data).x;
   var _y = $.evalJSON(_test_data).y;    
     $('#'+_id).css('left',_x+'px').css('top',_y+'px');
  }
}

5.总结:

①.思路是先拖后保存.实现方式各有不同

②.实际开发一定要保存到数据库

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript在事件监听方面的兼容性小结
Apr 07 Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
js中settimeout方法加参数
Feb 28 Javascript
JS原型链 详解及示例代码
Sep 06 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
Jun 04 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 Javascript
微信小程序学习之数据处理详解
Jul 05 Javascript
浅谈vue-router 路由传参的方法
Dec 27 Javascript
JS实现仿微信支付弹窗功能
Jun 25 Javascript
加快Vue项目的开发速度的方法
Dec 12 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
Jun 12 #Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 #Javascript
浅谈如何实现easyui的datebox格式化
Jun 12 #Javascript
JQuery的attr 与 val区别
Jun 12 #Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
Jun 12 #Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 #Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
Jun 12 #Javascript
You might like
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
UCenter Home二次开发指南
2009/05/28 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
奇妙的js
2007/09/24 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
JavaScript DOM基础
2015/04/13 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
pymysql 开启调试模式的实现
2019/09/24 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
django 多数据库及分库实现方式
2020/04/01 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
学生党员的自我评价范文
2014/03/01 职场文书
小学班主任心得体会
2016/01/07 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
科普 | 业余无线电知识-波段篇
2022/02/18 无线电