range.js 1010 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. $.fn.range = function (cfg) {
  2. cfg = cfg || {};
  3. var $input = $(this);
  4. if (cfg.hasOwnProperty('min'))
  5. $input.attr('min', cfg.min);
  6. if (cfg.hasOwnProperty('max'))
  7. $input.attr('max', cfg.max);
  8. if (cfg.hasOwnProperty('step'))
  9. $input.attr('step', cfg.step);
  10. if (cfg.hasOwnProperty('value'))
  11. $input.val(cfg.value);
  12. function changeHandler(e) {
  13. var max = Number($input.attr('max'));
  14. var min = Number($input.attr('min'));
  15. var thisval = Number($input.val());
  16. var bfb = Math.floor((thisval - min) * 100 / (max - min));
  17. $input.css('background-size', bfb + '% 100%');
  18. $input.attr('title', thisval);
  19. if (e && cfg.hasOwnProperty('onChange') && e.type !== "change")//IE下去掉 e.type !== "change"
  20. cfg.onChange(thisval, bfb);
  21. return $input;
  22. }
  23. $input.change(changeHandler);
  24. $input.on('input propertychange', changeHandler);
  25. changeHandler();
  26. return this;
  27. };