(function() { var $, Silder, correctValue, percent2Value; $ = jQuery; this.settings = { round: false, value: 0, total: 10, step: 0, inputID: "", callback: function() {} }; Silder = (function() { function Silder(args) { var ref; ref = [args.elem, args.settings], this.elem = ref[0], this.settings = ref[1]; this.callback = this.settings.callback; this.step = this.settings.step; this.value = this.settings.value; this.total = this.settings.total; this.inputID = this.settings.inputID; this.percent = 0; this.wrapper = {}; this.init(); } Silder.prototype.init = function() { var $btn, $shadow, $target, $wrapper, templ, total, value; $target = $(this.elem); templ = $("
").attr({ "class": "silder-wrapper" }); $target.append(templ); this.wrapper = $target.children().filter(".silder-wrapper"); $btn = $(this.wrapper).children(".silder-btn"); $shadow = $(this.wrapper).children(".silder-shadow"); $wrapper = $(this.wrapper); if (this.value !== 0) { value = this.value; total = this.total; setTimeout(function() { $btn.animate({ top: 0, left: $wrapper.width() * value / total - $btn.width() / 2 }); return $shadow.animate({ width: $wrapper.width() * value / total - $btn.width() / 2 }); }, 30); } return this.setEvent(); }; Silder.prototype.getPercent = function() { return this.percent; }; Silder.prototype.setEvent = function() { var $btn, $shadow, $wrapper, callback, digit, gridH, gridW, inputID, step, total, value, wrapper; wrapper = this.wrapper; $wrapper = $(this.wrapper); callback = this.callback; $btn = $(this.wrapper).children(".silder-btn"); $shadow = $(this.wrapper).children(".silder-shadow"); step = this.step; inputID = this.inputID; total = this.total; value = this.value; $btn = $(this.wrapper).children(".silder-btn"); $wrapper.on("click", function(e) { var ajax, percent, val; percent = e.offsetX / $wrapper.width(); val = percent2Value(percent, step, total); ajax = true; $btn.animate({ top: 0, left: $wrapper.width() * val / total - $btn.width() / 2 }); $shadow.animate({ width: $wrapper.width() * val / total - $btn.width() / 2 }); return callback.apply(this, [percent, val, ajax]); }); if (inputID !== "") { $(document).on("keyup", inputID, function(e) { var val; val = parseFloat($(e.target).val()); if (val !== NaN) { if (val <= total && val >= 0) { $btn.animate({ top: 0, left: $wrapper.width() * val / total - $btn.width() / 2 }); $shadow.animate({ width: $wrapper.width() * val / total - $btn.width() / 2 }); } if (val >= total) { $btn.animate({ top: 0, left: $wrapper.width() - $btn.width() / 2 }); $shadow.animate({ width: $wrapper.width() - $btn.width() / 2 }); return $(e.target).val(total); } } else { $btn.animate({ top: 0, left: $wrapper.width() * value / total - $btn.width() / 2 }); $shadow.animate({ width: $wrapper.width() * value / total - $btn.width() / 2 }); return $(e.target).val(value); } }); } $(this.wrapper).parent().children; gridW = $btn.width(); if (step !== 0) { digit = Math.pow(10, step.toString().length - 2); gridW = gridW / digit; } gridH = $btn.height(); $btn.draggable({ cursor: "col-resize", containment: 'parent', axis: "x", grid: [gridW, gridH], refreshPositions: true, drag: function(event, ui) { var ajax, percent; $shadow.css({ width: ui.position.left }); if (ui.position.left !== 0) { percent = (ui.position.left + $btn.width() / 2) / (wrapper.width() - $btn.width() / 2); } else if (ui.position.left < $btn.width() / 2) { percent = ui.position.left / wrapper.width(); } else { percent = 0; } ajax = false; value = percent2Value(percent, step, total); return callback.apply(this, [percent, value, ajax]); }, stop: function(event, ui) { var ajax, percent; $shadow.css({ width: ui.position.left }); if (ui.position.left !== 0) { percent = (ui.position.left + $btn.width() / 2) / (wrapper.width() - $btn.width() / 2); } else if (ui.position.left < $btn.width() / 2) { percent = ui.position.left / wrapper.width(); } else { percent = 0; } ajax = true; value = percent2Value(percent, step, total); return callback.apply(this, [percent, value, ajax]); } }); return this; }; return Silder; })(); percent2Value = function(percent, step, total) { var val; val = percent * total; val = correctValue(val, step); return parseFloat(val.toFixed(3)); }; correctValue = function(val, step) { var modStep, n, s; s = step !== 0 ? step : 1; modStep = val % s; n = val / s; return val = modStep * 2 >= s ? s * Math.ceil(n) : s * Math.floor(n); }; $.fn.extend({ silder: function(options) { this.settings = $.extend(settings, options); return this.each(function(idx, elem) { var silder; return silder = new Silder({ elem: elem, settings: settings }); }); } }); }).call(this); //# sourceMappingURL=data:application/json;base64,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QWtCLElBQWxCLENBRE4sQ0FBQTtXQUVBLFVBQUEsQ0FBVyxHQUFHLENBQUMsT0FBSixDQUFZLENBQVosQ0FBWCxFQUhjO0VBQUEsQ0EvS2hCLENBQUE7O0FBQUEsRUFzTEEsWUFBQSxHQUFlLFNBQUMsR0FBRCxFQUFNLElBQU4sR0FBQTtBQUNiLFFBQUEsYUFBQTtBQUFBLElBQUEsQ0FBQSxHQUFPLElBQUEsS0FBVSxDQUFiLEdBQW9CLElBQXBCLEdBQThCLENBQWxDLENBQUE7QUFBQSxJQUNBLE9BQUEsR0FBVSxHQUFBLEdBQU0sQ0FEaEIsQ0FBQTtBQUFBLElBRUEsQ0FBQSxHQUFJLEdBQUEsR0FBTSxDQUZWLENBQUE7V0FHQSxHQUFBLEdBQVMsT0FBQSxHQUFTLENBQVQsSUFBYyxDQUFqQixHQUF3QixDQUFBLEdBQUksSUFBSSxDQUFDLElBQUwsQ0FBVSxDQUFWLENBQTVCLEdBQThDLENBQUEsR0FBSSxJQUFJLENBQUMsS0FBTCxDQUFXLENBQVgsRUFKM0M7RUFBQSxDQXRMZixDQUFBOztBQUFBLEVBa01BLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTCxDQUNFO0FBQUEsSUFBQSxNQUFBLEVBQVEsU0FBQyxPQUFELEdBQUE7QUFFTixNQUFBLElBQUMsQ0FBQSxRQUFELEdBQVksQ0FBQyxDQUFDLE1BQUYsQ0FBUyxRQUFULEVBQW1CLE9BQW5CLENBQVosQ0FBQTtBQUVBLGFBQU8sSUFBQyxDQUFBLElBQUQsQ0FBTSxTQUFDLEdBQUQsRUFBTSxJQUFOLEdBQUE7QUFFWCxZQUFBLE1BQUE7ZUFBQSxNQUFBLEdBQWEsSUFBQSxNQUFBLENBQ1g7QUFBQSxVQUFBLElBQUEsRUFBTyxJQUFQO0FBQUEsVUFDQSxRQUFBLEVBQVcsUUFEWDtTQURXLEVBRkY7TUFBQSxDQUFOLENBQVAsQ0FKTTtJQUFBLENBQVI7R0FERixDQWxNQSxDQUFBO0FBQUEiLCJmaWxlIjoic2lsZGVyLmpzIiwic291cmNlUm9vdCI6Ii9zb3VyY2UvIiwic291cmNlc0NvbnRlbnQiOlsiJCA9IGpRdWVyeVxuIyBpdCBuZWVkIGpxdWVyeS51aS5kcmFnXG5Ac2V0dGluZ3MgPSBcbiAgcm91bmQ6IGZhbHNlXG4gIHZhbHVlOiAwXG4gIHRvdGFsOiAxMFxuICBzdGVwOiAwXG4gIGlucHV0SUQ6IFwiXCJcbiAgY2FsbGJhY2s6ICgpIC0+XG5cblxuXG5jbGFzcyBTaWxkZXIgXG4gIGNvbnN0cnVjdG9yOiAoYXJncyApIC0+XG4gICAgW0BlbGVtLCBAc2V0dGluZ3NdID0gW2FyZ3MuZWxlbSwgYXJncy5zZXR0aW5nc11cbiAgICBAY2FsbGJhY2sgPSBAc2V0dGluZ3MuY2FsbGJhY2tcblxuICAgIEBzdGVwID0gQHNldHRpbmdzLnN0ZXBcbiAgICBAdmFsdWUgPSBAc2V0dGluZ3MudmFsdWVcbiAgICBAdG90YWwgPSBAc2V0dGluZ3MudG90YWxcbiAgICBAaW5wdXRJRCA9IEBzZXR0aW5ncy5pbnB1dElEXG4gICAgQHBlcmNlbnQgPSAwXG4gICAgQHdyYXBwZXIgPSB7fVxuXG4gICAgQGluaXQoKVxuICAgIFxuICAgIFxuXG4gIGluaXQgOiAoKSAtPlxuICAgICR0YXJnZXQ9ICQoQGVsZW0pXG4gICAgdGVtcGwgPSAkKFwiPGRpdj48ZGl2IGNsYXNzPSdzaWxkZXItc2hhZG93Jz48L2Rpdj48ZGl2IGNsYXNzPSdzaWxkZXItYnRuJz48L2Rpdj48L2Rpdj5cIikuYXR0ciBjbGFzcyA6XCJzaWxkZXItd3JhcHBlclwiXG4gICAgJHRhcmdldC5hcHBlbmQgdGVtcGxcbiAgICBAd3JhcHBlciA9ICR0YXJnZXQuY2hpbGRyZW4oKS5maWx0ZXIoXCIuc2lsZGVyLXdyYXBwZXJcIilcbiAgICBcbiAgICAkYnRuID0gJChAd3JhcHBlcikuY2hpbGRyZW4oXCIuc2lsZGVyLWJ0blwiKVxuICAgICRzaGFkb3cgPSAkKEB3cmFwcGVyKS5jaGlsZHJlbihcIi5zaWxkZXItc2hhZG93XCIpXG4gICAgJHdyYXBwZXIgPSAkKEB3cmFwcGVyKVxuXG4gICAgaWYgKEB2YWx1ZSBpc250IDApXG5cbiAgICAgIHZhbHVlID0gQHZhbHVlXG4gICAgICB0b3RhbCA9IEB0b3RhbFxuXG4gICAgICBzZXRUaW1lb3V0IC0+XG5cbiAgICAgICAgJGJ0bi5hbmltYXRlXG4gICAgICAgICAgdG9wOiAwXG4gICAgICAgICAgbGVmdDogJHdyYXBwZXIud2lkdGgoKSAqIHZhbHVlIC8gdG90YWwgLSAkYnRuLndpZHRoKCkgLyAyXG4gICAgICAgICRzaGFkb3cuYW5pbWF0ZVxuICAgICAgICAgIHdpZHRoOiAkd3JhcHBlci53aWR0aCgpICogdmFsdWUgLyB0b3RhbCAtICRidG4ud2lkdGgoKSAvIDJcbiAgICAgICwgMzBcblxuICAgIEBzZXRFdmVudCgpXG5cbiAgZ2V0UGVyY2VudCA6ICgpIC0+XG4gICAgQHBlcmNlbnRcblxuICBzZXRFdmVudCA6ICgpIC0+XG4gICAgd3JhcHBlciA9IEB3cmFwcGVyXG4gICAgJHdyYXBwZXIgPSAkKEB3cmFwcGVyKVxuICAgIGNhbGxiYWNrID0gQGNhbGxiYWNrXG4gICAgJGJ0biA9ICQoQHdyYXBwZXIpLmNoaWxkcmVuKFwiLnNpbGRlci1idG5cIilcbiAgICAkc2hhZG93ID0gJChAd3JhcHBlcikuY2hpbGRyZW4oXCIuc2lsZGVyLXNoYWRvd1wiKVxuICAgIHN0ZXAgPSBAc3RlcFxuICAgIGlucHV0SUQgPSBAaW5wdXRJRFxuICAgIHRvdGFsID0gQHRvdGFsXG4gICAgdmFsdWUgPSBAdmFsdWVcblxuICAgICRidG4gPSAkKEB3cmFwcGVyKS5jaGlsZHJlbihcIi5zaWxkZXItYnRuXCIpXG4gICAgJHdyYXBwZXIub24gXCJjbGlja1wiLCAoZSktPlxuICAgICAgcGVyY2VudCA9IGUub2Zmc2V0WCAvICR3cmFwcGVyLndpZHRoKClcbiAgICAgIHZhbCA9IHBlcmNlbnQyVmFsdWUgcGVyY2VudCwgc3RlcCwgdG90YWxcbiAgICAgIGFqYXggPSB0cnVlXG4gICAgICAkYnRuLmFuaW1hdGVcbiAgICAgICAgdG9wOiAwXG4gICAgICAgIGxlZnQ6ICR3cmFwcGVyLndpZHRoKCkgKiB2YWwgLyB0b3RhbCAtICRidG4ud2lkdGgoKSAvIDJcbiAgICAgICRzaGFkb3cuYW5pbWF0ZVxuICAgICAgICB3aWR0aDogJHdyYXBwZXIud2lkdGgoKSAqIHZhbCAvIHRvdGFsIC0gJGJ0bi53aWR0aCgpIC8gMlxuXG4gICAgICBjYWxsYmFjay5hcHBseSh0aGlzLFtwZXJjZW50LCB2YWwsIGFqYXhdKVxuXG4gICAgaWYgaW5wdXRJRCBpc250IFwiXCJcbiAgICAgICQoZG9jdW1lbnQpLm9uIFwia2V5dXBcIiwgaW5wdXRJRCAsIChlKS0+XG4gICAgICAgIHZhbCA9IHBhcnNlRmxvYXQgJChlLnRhcmdldCkudmFsKCkgXG4gICAgICAgIGlmIHZhbCBpc250IE5hTiBcbiAgICAgICAgICBpZiB2YWwgPD0gdG90YWwgYW5kIHZhbCA+PSAwIFxuICAgICAgICAgICAgJGJ0bi5hbmltYXRlXG4gICAgICAgICAgICAgIHRvcDogMFxuICAgICAgICAgICAgICBsZWZ0OiAkd3JhcHBlci53aWR0aCgpICogdmFsIC8gdG90YWwgLSAkYnRuLndpZHRoKCkgLyAyXG4gICAgICAgICAgICAkc2hhZG93LmFuaW1hdGVcbiAgICAgICAgICAgICAgd2lkdGg6ICR3cmFwcGVyLndpZHRoKCkgKiB2YWwgLyB0b3RhbCAtICRidG4ud2lkdGgoKSAvIDJcbiAgICAgICAgICBpZiB2YWwgPj0gdG90YWxcbiAgICAgICAgICAgICRidG4uYW5pbWF0ZVxuICAgICAgICAgICAgICB0b3A6IDBcbiAgICAgICAgICAgICAgbGVmdDogJHdyYXBwZXIud2lkdGgoKSAtICRidG4ud2lkdGgoKSAvIDJcbiAgICAgICAgICAgICRzaGFkb3cuYW5pbWF0ZVxuICAgICAgICAgICAgICB3aWR0aDogJHdyYXBwZXIud2lkdGgoKS0gJGJ0bi53aWR0aCgpIC8gMlxuICAgICAgICAgICAgJChlLnRhcmdldCkudmFsKHRvdGFsKSBcblxuICAgICAgICBlbHNlXG4gICAgICAgICAgJGJ0bi5hbmltYXRlXG4gICAgICAgICAgICB0b3A6IDBcbiAgICAgICAgICAgIGxlZnQ6ICR3cmFwcGVyLndpZHRoKCkgKiB2YWx1ZSAvIHRvdGFsIC0gJGJ0bi53aWR0aCgpIC8gMlxuICAgICAgICAgICRzaGFkb3cuYW5pbWF0ZVxuICAgICAgICAgICAgd2lkdGg6ICR3cmFwcGVyLndpZHRoKCkgKiB2YWx1ZSAvIHRvdGFsLSAkYnRuLndpZHRoKCkgLyAyXG4gICAgICAgICAgJChlLnRhcmdldCkudmFsKHZhbHVlKSBcblxuXG4gICAgJChAd3JhcHBlcikucGFyZW50KCkuY2hpbGRyZW5cblxuICAgIGdyaWRXID0gJGJ0bi53aWR0aCgpXG5cbiAgICBpZiAoc3RlcCBpc250IDAgKVxuICAgICAgZGlnaXQgPSBNYXRoLnBvdygxMCwgc3RlcC50b1N0cmluZygpLmxlbmd0aC0yKVxuICAgICAgZ3JpZFcgPSBncmlkVyAvIGRpZ2l0XG5cblxuICAgIGdyaWRIID0gJGJ0bi5oZWlnaHQoKVxuXG4gICBcbiAgICAkYnRuLmRyYWdnYWJsZSBcbiAgICAgIGN1cnNvcjogXCJjb2wtcmVzaXplXCJcbiAgICAgIGNvbnRhaW5tZW50OiAncGFyZW50J1xuICAgICAgYXhpczogXCJ4XCJcbiAgICAgIGdyaWQ6IFsgZ3JpZFcsIGdyaWRIIF1cbiAgICAgIHJlZnJlc2hQb3NpdGlvbnM6IHRydWVcbiAgICAgIGRyYWcgOiAoZXZlbnQsdWkpIC0+XG4gICAgICAgICRzaGFkb3cuY3NzXG4gICAgICAgICAgd2lkdGg6IHVpLnBvc2l0aW9uLmxlZnRcblxuXG4gICAgICAgIGlmIHVpLnBvc2l0aW9uLmxlZnQgaXNudCAwXG4gICAgICAgICAgcGVyY2VudCA9ICh1aS5wb3NpdGlvbi5sZWZ0ICsgJGJ0bi53aWR0aCgpIC8gMikvKHdyYXBwZXIud2lkdGgoKSAtICRidG4ud2lkdGgoKS8yKVxuICAgICAgICBlbHNlIGlmIHVpLnBvc2l0aW9uLmxlZnQgPCAkYnRuLndpZHRoKCkvMlxuICAgICAgICAgIHBlcmNlbnQgPSB1aS5wb3NpdGlvbi5sZWZ0L3dyYXBwZXIud2lkdGgoKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgcGVyY2VudCA9IDBcblxuICAgICAgICBhamF4ID0gZmFsc2VcblxuXG5cbiAgICAgICAgIyBwZXJjZW50ID0gZGlnaXRSb3VuZCBwZXJjZW50LCBzdGVwXG4gICAgICAgICNcbiAgICAgICAgIyB2YWx1ZSA9IGRpZ2l0Um91bmQgcGVyY2VudCAqIHRvdGFsLCBzdGVwXG5cbiAgICAgICAgdmFsdWUgPSBwZXJjZW50MlZhbHVlIHBlcmNlbnQsIHN0ZXAsIHRvdGFsXG5cblxuICAgICAgICBjYWxsYmFjay5hcHBseSh0aGlzLFtwZXJjZW50LCB2YWx1ZSwgYWpheF0pXG5cbiAgICAgIHN0b3AgOiAoZXZlbnQsdWkpIC0+IFxuICAgICAgICAkc2hhZG93LmNzc1xuICAgICAgICAgIHdpZHRoOiB1aS5wb3NpdGlvbi5sZWZ0XG5cbiAgICAgICAgaWYgdWkucG9zaXRpb24ubGVmdCBpc250IDBcbiAgICAgICAgICBwZXJjZW50ID0gKHVpLnBvc2l0aW9uLmxlZnQgKyAkYnRuLndpZHRoKCkgLyAyKS8od3JhcHBlci53aWR0aCgpIC0gJGJ0bi53aWR0aCgpLzIpXG4gICAgICAgIGVsc2UgaWYgdWkucG9zaXRpb24ubGVmdCA8ICRidG4ud2lkdGgoKS8yXG4gICAgICAgICAgcGVyY2VudCA9IHVpLnBvc2l0aW9uLmxlZnQvd3JhcHBlci53aWR0aCgpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBwZXJjZW50ID0gMFxuXG4gICAgICAgIGFqYXggPSB0cnVlXG5cbiAgICAgICAgdmFsdWUgPSBwZXJjZW50MlZhbHVlIHBlcmNlbnQsIHN0ZXAsIHRvdGFsXG5cbiAgICAgICAgIyB2YWx1ZSA9IGRpZ2l0Um91bmQgcGVyY2VudCAqIHRvdGFsLCBzdGVwXG5cblxuXG5cbiAgICAgICAgY2FsbGJhY2suYXBwbHkodGhpcyxbcGVyY2VudCwgdmFsdWUsIGFqYXhdKVxuXG4gICAgQFxuXG5wZXJjZW50MlZhbHVlID0gKHBlcmNlbnQsIHN0ZXAsIHRvdGFsKSAtPlxuICB2YWwgPSBwZXJjZW50ICogdG90YWxcbiAgdmFsID0gY29ycmVjdFZhbHVlIHZhbCwgc3RlcFxuICBwYXJzZUZsb2F0IHZhbC50b0ZpeGVkKDMpXG4gIFxuICBcbiAgXG5jb3JyZWN0VmFsdWUgPSAodmFsLCBzdGVwICkgLT5cbiAgcyA9IGlmIHN0ZXAgaXNudCAwIHRoZW4gc3RlcCBlbHNlIDFcbiAgbW9kU3RlcCA9IHZhbCAlIHNcbiAgbiA9IHZhbCAvIHNcbiAgdmFsID0gaWYgbW9kU3RlcCAqMiA+PSBzIHRoZW4gcyAqIE1hdGguY2VpbChuKSBlbHNlIHMgKiBNYXRoLmZsb29yKG4pXG5cblxuXG5cblxuXG5cbiQuZm4uZXh0ZW5kXG4gIHNpbGRlcjogKG9wdGlvbnMpIC0+XG4gICAgXG4gICAgQHNldHRpbmdzID0gJC5leHRlbmQgc2V0dGluZ3MsIG9wdGlvbnNcblxuICAgIHJldHVybiBAZWFjaCAoaWR4LCBlbGVtKSAtPlxuXG4gICAgICBzaWxkZXIgPSBuZXcgU2lsZGVyXG4gICAgICAgIGVsZW0gOiBlbGVtXG4gICAgICAgIHNldHRpbmdzIDogc2V0dGluZ3NcbiAgICAgIFxuIl19 ;