41 lines
1010 B
JavaScript
41 lines
1010 B
JavaScript
$.fn.range = function (cfg) {
|
|
cfg = cfg || {};
|
|
|
|
var $input = $(this);
|
|
|
|
if (cfg.hasOwnProperty('min'))
|
|
$input.attr('min', cfg.min);
|
|
|
|
if (cfg.hasOwnProperty('max'))
|
|
$input.attr('max', cfg.max);
|
|
|
|
if (cfg.hasOwnProperty('step'))
|
|
$input.attr('step', cfg.step);
|
|
|
|
if (cfg.hasOwnProperty('value'))
|
|
$input.val(cfg.value);
|
|
|
|
function changeHandler(e) {
|
|
var max = Number($input.attr('max'));
|
|
var min = Number($input.attr('min'));
|
|
|
|
var thisval = Number($input.val());
|
|
|
|
var bfb = Math.floor((thisval - min) * 100 / (max - min));
|
|
$input.css('background-size', bfb + '% 100%');
|
|
$input.attr('title', thisval);
|
|
|
|
if (e && cfg.hasOwnProperty('onChange') && e.type !== "change")//IE下去掉 e.type !== "change"
|
|
cfg.onChange(thisval, bfb);
|
|
|
|
return $input;
|
|
}
|
|
|
|
|
|
$input.change(changeHandler);
|
|
$input.on('input propertychange', changeHandler);
|
|
|
|
changeHandler();
|
|
|
|
return this;
|
|
}; |