繁体   English   中英

如何确定点击时该div的偏移量x位置?

[英]How to fix the offset x position of this div on click?

使用香草JavaScript来面板拖动功能。

现在停留在如何正确偏移拖动器div的x位置,以使其不捕捉到光标的右侧。

我如何在下面校正我的x偏移量?

在此处输入图片说明

http://jsfiddle.net/leongaban/rrcL63y9/41/

window.onload = addListeners();

var xPosition = 0;

function addListeners() {
    document.getElementById('drag-container').addEventListener("click", getClickPosition, false);

    document.getElementById('dragger').addEventListener('mousedown', mouseDown, false);
    window.addEventListener('mouseup', mouseUp, false);
}

function getClickPosition(e) {
    xPosition = e.clientX;
    console.log(xPosition);
}

function mouseUp() {
    window.removeEventListener('mousemove', divMove, true);
}

function mouseDown(e) {
  window.addEventListener('mousemove', divMove, true);
}

function divMove(e) {
    var max = 443;
    var x = event.clientX;

    if (x > 100 && x < max) {
        var div = document.getElementById('dragger');
        div.style.position = 'absolute';

        div.x = xPosition;

        div.style.left = e.clientX + 'px';
    }

    //console.log(x);
}

您可以通过了解可拖动元素的宽度并将偏移量调整为-(width / 2);来完成此操作。

function divMove(e) {
    var max = 443;
    var x = event.clientX;
    var div = document.getElementById('dragger');
    var offset = div.offsetWidth/2;

    if (x > (100 + offset) && x < (max+offset)) {

        div.style.position = 'absolute';

        div.x = xPosition;

        div.style.left = (e.clientX - offset) + 'px';
    }

    //console.log(x);
}

这是更新的小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM