1

jquery スライダーを使用していますが、スライダー ハンドルがかなり大きいです。それが私が望む方法であるためにはmargin-left: -2px、それが 0 のとき (ずっと左側) でありmargin-left: -32px、100 のとき (ずっと右側) でなければなりません。

突然設定するのではなく、適切なマージンに緩和したい. スライド イベントを使用して実行できますが、計算に少し問題があります。

$(...).slider({
     slide: function(event, ui){
         var newMarginLeft = ...calculation... (ui.value is 0-100)
         $(this).children(".ui-handle").css("marginLeft", newMarginLeft);
     }
});
4

1 に答える 1

1

この関数を使用すると、2 から 32 までの数値が均等に生成されます。

function generateNum(num)
{
    return 2 + Math.floor(num * .30);
}

マイナスを追加するだけです。次のように使用します。

$(...).slider({
     slide: function(event, ui){
         var newMarginLeft = "-" + generateNum(ui.value);
         $(this).children(".ui-handle").css("marginLeft", newMarginLeft + "px");
     }
})

jsFiddle はこちら: http://jsfiddle.net/RWuR4/1/

Math.round を使用して切り上げを試すこともできます: これは、Math.round を使用するフィドルです。これにより、99 も 32 が返されます (したがって、Math.floor の代わりにもう少し必要なものになる可能性があります)。

http://jsfiddle.net/RWuR4/2/

于 2013-08-19T03:02:59.793 に答える