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 29 Javascript
JQuery与JS里submit()的区别示例介绍
Feb 17 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
May 26 Javascript
纯js实现html转pdf的简单实例(推荐)
Feb 16 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
Mar 03 Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
JSON.stringify()方法讲解
Jan 31 Javascript
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 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
smarty实例教程
2006/11/19 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python实现大文本文件分割
2019/07/22 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
如何通过python实现全排列
2020/02/11 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
六十岁生日答谢词
2014/01/10 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
毕业论文致谢词
2015/05/14 职场文书
信息技术研修心得体会
2016/01/08 职场文书
Golang日志包的使用
2022/04/20 Golang