滑块与数字的分数

时间:2011-10-10 02:14:02

标签: javascript dojo slider

我有一个从1到0.1的滑块。 我设置了最小值和最大值,滑块计算了数字之间的间隔。

但是现在我需要使用1 / 1,1 / 2,......到1/9之间的一组数字。 (例如1,0.5,0.33,0.25,......)

我该怎么做?

<div id="slider1" data-dojo-type="dijit.form.HorizontalSlider"
        data-dojo-props='name:"horizontal1",
            onChange:function(val){ dojo.byId("slider1input").value=dojo.number.format(val); },

            maximum:1/9,
            minimum:1/1,
            showButtons:true,
            discreteValues:9,
            intermediateChanges:true,
            style:{width:"400px"}
            '>

demo

1 个答案:

答案 0 :(得分:1)

以下是demo page

中的修改示例
<div id='slider1'
 data-dojo-type='dijit.form.HorizontalSlider'
 data-dojo-props='name:"horizontal1",
                  onChange: function(val){ dojo.byId("slider1input").value = dojo.number.format( 1 / (10 - val) ); },
                  maximum: 9,
                  minimum: 1,
                  showButtons: true,
                  discreteValues: 9,
                  intermediateChanges: true,
                  style: {width:"400px"}'>

<ol dojoType="dijit.form.HorizontalRuleLabels" container="topDecoration" style="height: 1.5em; font-size: 75%; color: gray;">
    <li>1/9</li>
    <li>1/8</li>
    <li>1/7</li>
    <li>1/6</li>
    <li>1/5</li>
    <li>1/4</li>
    <li>1/3</li>
    <li>1/2</li>
    <li>1</li>
</ol>
<div dojoType="dijit.form.HorizontalRule" container="bottomDecoration" count=9 style="height:5px;"></div>

因此滑块接受整数,然后将它们转换为分数,请参阅onChange函数。