0

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

4

1 に答える 1

2

非常にきちんとしたウィジェット/実装。正しく動作するようにフィドルを更新しました。

追加した

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

それ以外の場合は、前回差を計算したときとは対照的に、最初から差を計算していたからです。

于 2013-07-09T02:39:51.000 に答える