javascript - 如何在angularjs中设置范围 slider 中的时间?

标签 javascript jquery angularjs rangeslider

我在 Angular js 中使用带有可拖动范围( https://jsfiddle.net/ValentinH/954eve2L/ )的 slider 来选择时间。我想在这个 slider 中设置时间。所以我的时钟是从 00:00 到 24:00。但我想设置时间间隔为 10 分钟,例如 00.10, 00.20, 00.30, 00.40, 00.50, 01.00, 01.10,01.10

<article>
  <h2>Slider with draggable range</h2>

  <rzslider rz-slider-model="slider_draggable_range.minValue" rz-slider-high="slider_draggable_range.maxValue" rz-slider-options="slider_draggable_range.options"></rzslider>
</article>

// Slider with draggable range
$scope.slider_draggable_range = {
  minValue: 1,
  maxValue: 8,
  options: {
    ceil: 10,
    floor: 0,
    draggableRange: true
  }
};

$scope.slider_draggable_range = {
  minValue: $scope.fromTime,
  maxValue: $scope.toTime,
  options: {
    ceil: 24,
    floor: 0,
    draggableRange: true,
    showTicks: true,
    hideLimitLabels: true,
    hourBase: function(value) {
      return (((value > 1 && value < 12) || value > 25) ? '0' : '') + (value + 22) % 24 + '00 hrs'
    },
    steps: pules()
  }
};

我无法发布完整的代码。因为这是不可能的。我正在选择按小时计算的时间,例如 10.00、11.00、12.00……但现在我想从 1.10、1.20、1.30 开始计时。 enter image description here

当我静态使用 minValue: 4.40 时,它将指向 4,当我设置 4.60 时,它将指向 5,所以它转换成整数值。不是点数。

$scope.slider_draggable_range = {
  minValue: 4.40,
  maxValue: 7,
  options: {
    ceil: 24,
    floor: 0,
    draggableRange: true
  }
};

ceil:24 limit,
floor: starting point, minvalue:plote starting point for
rang, maxvalue:plote ending point for rang

请分享您的想法。这个问题对我来说非常重要,您的回答也很有值(value)。

最佳答案

如果我理解正确的话,你想要的东西,可以使用 stepsArray 来实现选项。

思路是使用option来自己设置选项。这样您就可以将其设置为非整数。

(在 http://angular-slider.github.io/angularjs-slider/ 中搜索演示Slider with Alphabet)

像这样(不是这样,只是一个例子):

var app = angular.module('rzSliderDemo', ['rzModule', 'ui.bootstrap']);

app.controller('MainCtrl', function($scope, $rootScope, $timeout) {
  var arr = getRange().map(n => {
    return {
      value: n,
      legend: n
    };
  });
  
  $scope.slider = {
    minValue: '10.50',
    maxValue: '14.20',
    options: {
      showTicks: true,
      stepsArray: arr
    }
  };
});

function getRange() {
  var arr = [];
  var d = new Date(2017, 1, 1);
  for (var i = 0; i < (6 * 24); i++) {
    d.setMinutes(d.getMinutes() + 10);
    arr.push(leadZero(d.getHours()) + '.' + leadZero(d.getMinutes()));
  }
  return arr;
}

function leadZero(time) {
  return time < 10 ? '0' + time : time;
}
* {
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Open Sans', sans-serif;
  color: #1f2636;
  font-size: 14px;
  padding-bottom: 40px;
}

header {
  background: #0db9f0;
  color: #fff;
  margin: -40px;
  margin-bottom: 40px;
  text-align: center;
  padding: 40px 0;
}

h1 {
  font-weight: 300;
}

h2 {
  margin-bottom: 10px;
}

.wrapper {
  background: #fff;
  padding: 40px;
}

article {
  margin-bottom: 10px;
}

.tab-pane {
  padding-top: 10px;
}

.field-title {
  width: 100px;
}

.vertical-sliders {
  margin: 0;
}

.vertical-sliders>div {
  height: 250px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://rawgit.com/rzajac/angularjs-slider/master/dist/rzslider.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.14.3/ui-bootstrap-tpls.js"></script>
<script src="https://rawgit.com/rzajac/angularjs-slider/master/dist/rzslider.js"></script>
<div ng-app="rzSliderDemo">
  <div ng-controller="MainCtrl" class="wrapper">
    <header>
      <h1>AngularJS Touch Slider</h1>

    </header>
    <article>
      <h2>Simple slider</h2>
      Model:
      <input type="text" ng-model="slider.minValue" />
      <input type="text" ng-model="slider.maxValue" />
      <br/>
      <rzslider rz-slider-model="slider.minValue" rz-slider-high="slider.maxValue" rz-slider-options="slider.options"></rzslider>
    </article>
  </div>
</div>

关于javascript - 如何在angularjs中设置范围 slider 中的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43803661/

相关文章:

javascript - 从图像中删除放大镜

javascript - 为谷歌可视化表列中的列添加自定义排序

javascript - 如果当前时间大于且小于特定时间,如何调用函数

javascript - 如何在html完成渲染后获取一个div的高度并将其分配给另一个div

javascript - WebAssembly 返回字符串使用 C

javascript - Chrome推送通知-点击后如何打开URL地址?

php - 从表中检索到的条目是否重复? PHP

jquery - 我们如何在odoo 12网站上制作可编辑的表单? (使用js/jquery编辑/保存表单)

javascript - 如果用户更改 url 并呈现错误的 View

javascript - 将范围值转换为其他范围值的语法