教程集 www.jiaochengji.com
教程集 >  jQuery  >  jquery 教程  >  正文 jquery页面拖拽并保存到cookie实例分享

jquery页面拖拽并保存到cookie实例分享

发布时间:2015-12-09   编辑:jiaochengji.com
如何用jquery实现页面拖拽并保存到cookie中呢,这里分享一例代码,供大家参考下。

要实现效果:
页面内的图片可拖拽到任意位置,并将所在位置保存.下次打开页面依然可见。

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.jbxue.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效果全部没有了。
这里除了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.总结.
1.思路是先拖后保存.实现方式各有不同.
2.实际开发一定要保存到数据库.

您可能感兴趣的文章:
jquery页面拖拽并保存到cookie实例分享
Jquery拖拽并简单保存的实现代码
HTML5 DragEvent接口的实例讲解
HTML5实现拖拽批量上传文件的代码
jquery sortable的拖动方法示例详解
HTML5的WebGL3D档案馆图书可视化管理系统的实现
如何使用jQuery Draggable和Droppable实现拖拽功能
html5draggable属性是如何做到页面拖动效果的?方法总结在这里!
详解HTML5拖放功能实例
jquery中的sortable排序之后的保存状态的解决方法

关键词: div拖拽   
[关闭]
~ ~