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 相关文章推荐
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
Jan 13 Javascript
jquery ajax同步异步的执行最终解决方案
Apr 26 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
javascript中错误使用var造成undefined
Mar 31 Javascript
Web打印解决方案之证件套打的实现思路
Aug 29 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
js获取文件里面的所有文件名(实例)
Oct 17 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
angular 实现下拉列表组件的示例代码
Mar 09 Javascript
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
仅一个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使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
javascript fullscreen全屏实现代码
2009/04/09 Javascript
Javascript 二维数组
2009/11/26 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
vue页面加载闪烁问题的解决方法
2018/03/28 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python 串行执行和并行执行实例
2020/04/30 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
Servlet方面面试题
2016/09/28 面试题
捐款倡议书范文
2014/02/02 职场文书
岗位职责说明书
2014/05/07 职场文书
政风行风整改方案
2014/10/25 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
庆七一活动简报
2015/07/20 职场文书
遗嘱范文
2015/08/07 职场文书
判断Python中的Nonetype类型
2021/05/25 Python