【问题标题】:Div slider not moving correctly with mouse movementDiv 滑块无法随着鼠标移动而正确移动
【发布时间】:2013-07-09 10:39:51
【问题描述】:

我有一个用 Javascript 制作的滑块,但它的移动不太正确,它似乎在加速而不是保持与鼠标相同的速度。

我知道这是一个逻辑错误,但我无法弄清楚我做错了什么,所以我希望有人能发现这个错误。

处理 div 的函数是这样的:

var calc = function (e) {
    var dif = e.pageX - clickX;
    var parentWidth = parseInt(window.getComputedStyle(el.parentNode).width);
    var childWidth = parseInt(window.getComputedStyle(el).width);
    var childLeft = parseInt(window.getComputedStyle(el).left);
    var left = childLeft + dif;

    if (left < 0) { left = 0; }
    else if (left > (parentWidth-childWidth)) { left = (parentWidth-childWidth); }

    el.style.left = left + 'px';
};

我已经提供了一个 JSFiddle 并在使用中:JSFiddle

【问题讨论】:

    标签: javascript


    【解决方案1】:

    非常整洁的小部件/实现。我更新了fiddle 以使其正常工作。

    添加

        var dif = e.pageX - clickX;
        clickX = e.pageX;// update clickX so next time you calculate the right dif
    

    因为否则它从一开始就计算差异,而不是从上次计算差异。

    【讨论】:

      猜你喜欢
      • 2019-04-06
      • 2022-11-18
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多