拖曳实例,并且用cookie记录dom最后的位置

拖曳实例,并且用cookie记录dom最后的位置 

  <div id="demo"></div>
    <script>
        var oDemo = document.getElementById('demo');
        var manageCookie = {
            setCookie: function (name, value, data) {
                document.cookie = name + '=' + value + ';max-age=' + data;
                return this;
            },
            removeCookie: function (name) {
                this.setCookie(name, '', -1);
                return this;
            },
            getCookie: function (name, callback) {
                var allCookieArr = document.cookie.split('; ');
                var len = allCookieArr.length;
                for (var i = 0; i < len; i++) {
                    var itemCookieArr = allCookieArr[i].split('=');
                    if (itemCookieArr[0] == name) {
                        callback(itemCookieArr[1]);
                        return this;
                    }
                }
                callback(null);
                return this;
            }
        }

        var drag = {
            init: function (dom) {
                this.dom = dom;
                this.bindEvent();
                var _self = this
                manageCookie.getCookie('newLeft', function (data) {
                    _self.dom.style.left = data +'px'; // 注意此处的this指向window,
                }).getCookie('newTop', function (data) {
                    _self.dom.style.top = data + 'px';
                });
            },
            bindEvent: function () {
                this.dom.onmousedown = this.mouseDown.bind(this);  // 注意此处的bind改变this指向为drag
            },
            mouseDown: function (e) {
                document.onmousemove = this.mouseMove.bind(this);
                document.onmouseup = this.mouseUp.bind(this);
                this.disY = e.clientY - this.dom.offsetTop;
                this.disX = e.clientX - this.dom.offsetLeft;
            },
            mouseMove: function (e) {
                this.newLeft = e.clientX - this.disX;
                this.newTop = e.clientY - this.disY;
                this.dom.style.left = this.newLeft + 'px';
                this.dom.style.top = this.newTop + 'px';
                manageCookie.setCookie('newLeft', this.newLeft, 10000).setCookie('newTop', this.newTop, 10000)
            },
            mouseUp: function () {
                document.onmousemove = null;
                document.onmouseup = null;
            }
        }
        drag.init(oDemo)
    </script>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值