利用Jquery实现页面上div的拖动及位置保存

<script src="js/jquery.js.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.9.1.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
        $(function(){
            $("div.containment-wrapper").draggable();
        });

        function setObjectInitPos(selector)
        {
            var cookies = getCookies();
            $(selector).each(function(){
                var left = parseFloat(cookies[$(this).attr("id")+"_Left"]);
                var top = parseFloat(cookies[$(this).attr("id")+"_Top"]);
                if(!isNaN(left))
                    $(this).css("left", left + "px");
                if(!isNaN(top))
                    $(this).css("top", top + "px");
            });
            $(selector).draggable({
                start:function(){},
                drag:function(){},
                stop:function(){
                    setCookie($(this).attr("id")+"_Left", $(this).css("left").replace("px",""),365);
                    setCookie($(this).attr("id")+"_Top", $(this).css("top").replace("px",""),365);
                }
            });
        }
        
        function setCookie(name, value, daysToLive) {
            var cookie = name + "=" + encodeURIComponent(value);
            if (typeof daysToLive === "number") 
                cookie += "; max-age=" + (daysToLive*60*60*24);
            document.cookie = cookie;
        }
        
        function getCookies() {
            var cookies = {};           
            var all = document.cookie;  
            if (all === "")             
                return cookies;         
            var list = all.split("; "); 
            for(var i = 0; i < list.length; i++) { 
                var cookie = list[i];
                var p = cookie.indexOf("=");        
                var name = cookie.substring(0,p);   
                var value = cookie.substring(p+1);  
                value = decodeURIComponent(value);  
                cookies[name] = value;             
            }
            return cookies;
        }
    </script>
<div id="div1" style="position:absolute;border:1px solid green;width:200px;height:30px;left:0px;top:0px;">
        <img src="https://www.baidu.com/img/bdlogo.png" style="width:200px;height:30px;" />
    </div>
    <div id="div2" style="position:absolute;border:1px solid green;width:200px;height:30px;left:0px;top:40px;">
        <img src="https://www.baidu.com/img/bdlogo.png" style="width:200px;height:30px;" />
    </div>
    <div id="div3" style="position:absolute;border:1px solid green;width:200px;height:30px;left:0px;top:80px;">
        <img src="https://www.baidu.com/img/bdlogo.png" style="width:200px;height:30px;" />
    </div>

 下面是另一个自己写的方案,兼容性有一点问题:

    <script type="text/javascript">
        $(function(){
            setObjectMovable(document.getElementById("div1"));
            setObjectMovable(document.getElementById("div2"));
            setObjectMovable(document.getElementById("div3"));
            
            setCookie("a","1",1);
            setCookie("b","2",1);
        });

        function setObjectMovable(obj)
        {
            $(obj).bind("mousedown",function(){
                obj.startX = event.clientX;
                obj.startY = event.clientY;
                obj.drag = true;
                obj.setCapture();
            });
            $(obj).bind("mousemove",function(){
                if(obj.drag)
                {
                    var chgX = event.clientX - obj.startX;
                    var chgY = event.clientY - obj.startY;
                    obj.startX = event.clientX;
                    obj.startY = event.clientY;
                    var newLeft = parseFloat($(obj).css("left").replace("px","")) + parseFloat(chgX);
                    var newTop = parseFloat($(obj).css("top").replace("px","")) + parseFloat(chgY);
                    $(obj).css("left", newLeft + "px");
                    $(obj).css("top", newTop + "px");
                }
            });
            $(obj).bind("mouseup",function(){
                obj.drag = false;
                obj.releaseCapture();
            });    
        }
        
        function setCookie(name, value, daysToLive) {
            var cookie = name + "=" + encodeURIComponent(value);
            if (typeof daysToLive === "number") 
                cookie += "; max-age=" + (daysToLive*60*60*24);
            document.cookie = cookie;
        }
        
        function getCookies() {
            var cookies = {};           
            var all = document.cookie;  
            if (all === "")             
                return cookies;         
            var list = all.split("; "); 
            for(var i = 0; i < list.length; i++) { 
                var cookie = list[i];
                var p = cookie.indexOf("=");        
                var name = cookie.substring(0,p);   
                var value = cookie.substring(p+1);  
                value = decodeURIComponent(value);  
                cookies[name] = value;             
            }
            return cookies;
        }
    </script>

 

转载于:https://www.cnblogs.com/nanfei/p/4885929.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值