项目作者: Stryzhevskyi

项目描述 :
Simple, small and fast vanilla JavaScript polyfill for the HTML5 `` slider element.
高级语言: JavaScript
项目地址: git://github.com/Stryzhevskyi/rangeSlider.git
创建时间: 2015-02-19T19:51:55Z
项目社区:https://github.com/Stryzhevskyi/rangeSlider

开源协议:MIT License

下载


rangeSlider

Simple, small and fast vanilla JavaScript polyfill for the HTML5 <input type="range"> slider element.
Forked from André Ruffert’s jQuery plugin

Check out the examples.

  • Touchscreen friendly
  • Recalculates onresize
  • Small and fast
  • Supports all major browsers
  • Buffer progressbar (for downloading progress etc.)

Install

Install with npm:
npm install --save rangeslider-pure

Usage

  1. // Initialize a new plugin instance for one element or NodeList of elements.
  2. const slider = document.querySelector('input[type="range"]');
  3. rangeSlider.create(slider, {
  4. polyfill: true, // Boolean, if true, custom markup will be created
  5. root: document,
  6. rangeClass: 'rangeSlider',
  7. disabledClass: 'rangeSlider--disabled',
  8. fillClass: 'rangeSlider__fill',
  9. bufferClass: 'rangeSlider__buffer',
  10. handleClass: 'rangeSlider__handle',
  11. startEvent: ['mousedown', 'touchstart', 'pointerdown'],
  12. moveEvent: ['mousemove', 'touchmove', 'pointermove'],
  13. endEvent: ['mouseup', 'touchend', 'pointerup'],
  14. vertical: false, // Boolean, if true slider will be displayed in vertical orientation
  15. min: null, // Number, 0
  16. max: null, // Number, 100
  17. step: null, // Number, 1
  18. value: null, // Number, center of slider
  19. buffer: null, // Number, in percent, 0 by default
  20. stick: null, // [Number stickTo, Number stickRadius] : use it if handle should stick to ${stickTo}-th value in ${stickRadius}
  21. borderRadius: 10, // Number, if you're using buffer + border-radius in css
  22. onInit: function () {
  23. console.info('onInit')
  24. },
  25. onSlideStart: function (position, value) {
  26. console.info('onSlideStart', 'position: ' + position, 'value: ' + value);
  27. },
  28. onSlide: function (position, value) {
  29. console.log('onSlide', 'position: ' + position, 'value: ' + value);
  30. },
  31. onSlideEnd: function (position, value) {
  32. console.warn('onSlideEnd', 'position: ' + position, 'value: ' + value);
  33. }
  34. });
  35. // update position
  36. const triggerEvents = true; // or false
  37. slider.rangeSlider.update({
  38. min : 0,
  39. max : 20,
  40. step : 0.5,
  41. value : 1.5,
  42. buffer : 70
  43. }, triggerEvents);
  1. <input
  2. type="range"
  3. min="0"
  4. max="100"
  5. step="1"
  6. data-buffer="60" />

Internal APIs:

  1. /*
  2. * @see src/utils/dom.js
  3. */
  4. RangeSlider.dom;
  5. /*
  6. * @see src/utils/functions.js
  7. */
  8. RangeSlider.functions;
  9. RangeSlider.version;

Use JSFiddle template for issues

Alternative template on StackBlitz

License

MIT