上次拖动事件始终返回负数

时间:2015-05-05 10:01:52

标签: javascript html5

使用以下脚本,我使用HTML5功能获得负数作为上次拖动事件。

请尝试在此处拖动红色div:

http://jsbin.com/bobezeveho/1/

释放拖动时,div未正确定位。

我想知道:

  • 这个问题的原因是什么?
  • 这个问题的解决方案是什么?

注意:我知道我可以check if a negative value has been returned并跳过它,但我很想知道导致问题的原因。

 window.app = {
            config: {
                canDrag: false,
                cursorOffsetX: null,
                cursorOffsetY: null
            },
            reset: function () {
                this.config.cursorOffsetX = null;
                this.config.cursorOffsetY = null;
            },
            start: function () {
                document.getElementById('target').addEventListener('dragstart', function (event) {
                    console.log('+++++++++++++ dragstart')
                    this.config.cursorOffsetX = event.offsetX;
                    this.config.cursorOffsetY = event.offsetY;
                    this.adjustPostion(event);
                }.bind(this));
                document.getElementById('target').addEventListener('drag', function (event) {
                    console.log('+++++++++++++ drag')
                    this.adjustPostion(event);
                }.bind(this));
                document.getElementById('target').addEventListener('dragend', function (event) {
                    console.log('+++++++++++++ dragend')
                    this.reset();
                }.bind(this));;
            },
            adjustPostion: function (event) {
                var elm = document.getElementById('target');
                elm.style.left = (event.pageX - this.config.cursorOffsetX) + 'px';
                elm.style.top = (event.pageY - this.config.cursorOffsetY) + 'px';
                console.log(event.pageX);
                console.log(event.pageY);
            }

        };

0 个答案:

没有答案