【问题标题】:Angular rzslider: max value for min & min value for max; range sliderAngular rzslider:最小值的最大值和最大值的最小值;范围滑块
【发布时间】:2016-07-18 11:31:20
【问题描述】:

我正在使用rzslider 制作一个范围滑块,其行为如下:

  • 地板 = -10,天花板 = 10
  • minRange = 1
  • 起始值,minValue = -5;最大值 = 5
  • noSwitching = true

以及我遇到的问题:

  • minValue 需要一个 0 的上限,而 maxValue 需要一个 0 的下限,因此范围永远不能是例如1-5。

编辑:

可能的值可能是:-2,5 或 -4,1

不允许的值包括:2,4 或 -9,-2

【问题讨论】:

    标签: javascript angularjs slider


    【解决方案1】:

    查看 [https://jsfiddle.net/dyf8maqb/8 中的范围滑块示例。

    $scope.minRangeSlider = {
        minValue: -5,
        maxValue: 5,  
        options: {
            floor: -10,
            ceil: 10,
            step: 1,
            noSwitching: true,
            minRange: 1,
            onEnd: function () {
                $scope.minRangeSlider.minValue = Math.min($scope.minRangeSlider.minValue,0);
                $scope.minRangeSlider.maxValue = Math.max($scope.minRangeSlider.maxValue,0);
            }
        }
    };
    

    【讨论】:

    • 感谢您的回复 - 但不,这就是我目前所拥有的。我需要范围的下限不能高于 0,范围的上限不能低于 0。所以一些可能的值是 -5,2 | 0,3 | -1,9 但不允许使用 2,5 或 -9,-1。是不是更清楚了?
    • 我认为您可以简单地添加 onChange 事件
    • 这并不可靠,你是对的,但这是朝着正确方向迈出的一步!如果我有任何地方,我会继续玩它并更新。
    • 这是我能做到的最干净的。不幸的是,它并没有在 0 处停止拖动,但是如果它们在释放时超出限制,则会返回 0 - 使用 onEnd,而不是 onChange。
    • 嗯,当下光标拖到 0 以上或上光标拖到 0 以上时,我可能会考虑隐藏标签;除此之外,我将跳入源代码,看看那里可以做什么。感谢您的帮助!
    【解决方案2】:

    应该这样做(见https://jsfiddle.net/dyf8maqb/11/

    <div style="width:50%;float:left">
        <rzslider rz-slider-model="minRangeSlider.value" rz-slider-options="minRangeSlider.options"></rzslider>
    </div>
    <div style="width:50%;float:left">
        <rzslider rz-slider-model="maxRangeSlider.value" rz-slider-options="maxRangeSlider.options"></rzslider>
    </div>
    
    $scope.minRangeSlider = {
        value: -5,
        options: {
            floor: -10,
            ceil: 0,
            step: 1,
            translate: function(value, id, label) {
              return (label === 'ceil') ? '' : value;
            }
        }
    };
    
    $scope.maxRangeSlider = {
        value: 5,
        options: {
            floor: 0,
            ceil: 10,
            step: 1,
            translate: function(value, id, label) {
              return (label === 'floor') ? '' : value;
            }
        }
    };
    

    【讨论】:

    • 这真的是两个并排的滑块。 translate 函数将两个 '0' 隐藏在中间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2014-03-22
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多