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 相关文章推荐
基于jquery+thickbox仿校内登录注册框
Jun 07 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
Jan 12 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
Sep 27 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
Feb 19 Javascript
ExtJS4给Combobox设置列表中的默认值示例
May 02 Javascript
JavaScript动态生成二维码图片
Apr 20 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
Jun 03 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
JavaScript运行原理分析
Feb 09 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
Mar 09 Javascript
vue操作下拉选择器获取选择的数据的id方法
Aug 24 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 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/02 无线电
php 缓存函数代码
2008/08/27 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
PHP7匿名类用法分析
2016/09/26 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
2018/09/16 Javascript
基于Vue 服务端Cookies删除的问题
2018/09/21 Javascript
iView框架问题整理小结
2018/10/16 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
Python max内置函数详细介绍
2016/11/17 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
python下载库的步骤方法
2019/10/12 Python
Python调用.NET库的方法步骤
2019/12/27 Python
python十进制转二进制的详解
2020/02/07 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
餐饮商业计划书范文
2014/04/29 职场文书
投标服务承诺书
2014/05/28 职场文书
妈妈活动方案
2014/08/15 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
python之django路由和视图案例教程
2021/07/26 Python
HttpClient实现表单提交上传文件
2022/08/14 Java/Android