jQuery 中的可拖动滑块标尺

Draggable Slider Ruler in jQuery

正在寻找可拖动(我所说的可拖动是指双击滚动)标尺,如下面 link 所示。

https://www.ladderlife.com/apply#SW5zdXJlZFBlcnNvbi5IZWlnaHQ=

如果有人能帮助我让库实现相同的功能,我将不胜感激

考虑以下因素。

$(function() {
  function getVal() {
    var p = $(".ladder").position().top;
    var r = 1;
    var h = $(".step").height();
    switch (true) {
      case (p > 18 && p < 60):
        r = 10;
        break;
      case (p > -22 && p < 17):
        r = 9;
        break;
      case (p > -55 && p < -21):
        r = 8;
        break;
      case (p > -92 && p < -54):
        r = 7;
        break;
      case (p > -130 && p < -92):
        r = 6;
        break;
      case (p > -166 && p < -130):
        r = 5;
        break;
      case (p > -200 && p < -166):
        r = 4;
        break;
      case (p > -238 && p < -200):
        r = 3;
        break;
      case (p > -272 && p < -238):
        r = 2;
        break;
      case (p < -272):
        r = 1;
        break;
    }
    return r;
  }
  $(".ladder").draggable({
    axis: "y",
    containment: [0, -300, 150, 60],
    drag: function(e, ui) {
      $(".value").val(getVal());
    }
  });
});
.ui-ladder {
  width: 150px;
  height: 100px;
  text-align: center;
  overflow: hidden;
  position: relative;
}

.ui-ladder .step {
  padding: 0.5em 0;
  border-bottom: 1px solid #ccc;
}

.ui-ladder .marker {
  border-top: 2px solid rgba(255,0,0,0.65);
  position: absolute;
  top: 51px;
  width: 100%;
}

.ui-ladder .value {
  position: absolute;
  top: 41px;
  left: 118px;
  width: 1.5em;
  padding-left: 5px;
}

.ui-ladder .arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid #ccc;
  margin-left: -10px;
  top: 42px;
  left: 118px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="ui-ladder ui-widget">
  <div class="ui-widget-content ladder" style="top: -145px">
    <div class="step">10</div>
    <div class="step">9</div>
    <div class="step">8</div>
    <div class="step">7</div>
    <div class="step">6</div>
    <div class="step">5</div>
    <div class="step">4</div>
    <div class="step">3</div>
    <div class="step">2</div>
    <div class="step">1</div>
  </div>
  <div class="marker"></div>
  <div class="arrow"></div>
  <input class="value ui-widget-header" value="5" type="text" />
</div>