D3滑块自动调整

时间:2017-04-15 17:27:25

标签: javascript html d3.js svg

在我的附件fiddle中,我创建了三个单独的D3滑块,其值(Weight1,Weight2和Weight3,所有小数在0和1之间)以百分比形式呈现给用户。将这些值视为百分比加权。这里的三个滑块中的每一个都有独立的“因子移动”。用于控制其移动和更新百分比值的功能。

在代码中,您会找到:

  • 每个滑块调用三次d3.behavior.drag()
  • 在屏幕上绘制滑块的三个块及其随附文本(WeightLine,WeightCircle,Label和WeightText)。
  • 三个函数(FactorMove),用于处理拖动滑块和相应更改值的行为。

然而,我一直在努力的是在这些函数中添加一个部分来调整其他两个,使得所有三个值加起来达到100%。

以下是一个例子:

  1. 滑块1,2和3分别以33%开始,因此每个滑块占总数的三分之一。

  2. 滑块1移动到50%。

  3. 滑块2和3都应自动降低到25%,以便滑块值加起来为100(50 + 25 + 25)。

  4. 我认为这将涉及在函数中添加一个部分:

    if (Weight1 + Weight2 + Weight3 != 1) // Code...

    然而,到目前为止我所尝试的并没有成功。这会涉及改变小提琴中的FactorMove函数吗?

    任何提示都会受到赞赏,因为我是D3的新手。提前谢谢!

0 个答案:

没有答案