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 25 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
May 21 Javascript
Jquery命名冲突解决的五种方案分享
Mar 16 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
JavaScript 中的 this 简单规则
Sep 19 Javascript
详解Vue 事件修饰符capture 的使用
Dec 29 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 Javascript
如何基于JS截获动态代码
Dec 25 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+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHP 开源AJAX框架14种
2009/08/24 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
php查询操作实现投票功能
2016/05/09 PHP
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
门卫工作岗位职责
2013/12/17 职场文书
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
装修五一活动策划案
2014/01/23 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
科技节口号
2014/06/19 职场文书
七夕活动策划方案
2014/08/16 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸