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 图片预览效果 推荐
Dec 22 Javascript
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
Jul 02 Javascript
flash遮住div问题的正确解决方法
Feb 27 Javascript
在Node.js应用中读写Redis数据库的简单方法
Jun 30 Javascript
jQuery实现简单的手风琴效果
Apr 17 jQuery
详解cordova打包成webapp的方法
Oct 18 Javascript
vue通过路由实现页面刷新的方法
Jan 25 Javascript
微信小程序实现即时通信聊天功能的实例代码
Aug 17 Javascript
VUE脚手架具体使用方法
May 20 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
vue实现pdf文档在线预览功能
Nov 26 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
php&amp;java(二)
2006/10/09 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
php unlink()函数使用教程
2018/07/12 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
jQuery 阴影插件代码分享
2012/01/09 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
Python数据分析库pandas基本操作方法
2018/04/08 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
python中pickle模块浅析
2020/12/29 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
英语感恩演讲稿
2014/01/14 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
洗手间标语
2014/06/23 职场文书
银行求职自荐书
2014/06/25 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
永不妥协观后感
2015/06/10 职场文书
企业宣传稿范文
2015/07/23 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL