рдореИрдВ рддреБрд░рдВрдд рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╢рд╛рд╕реА рдирд┐рдХрд╛рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ jQuery рдХреЗ рддрд╣рдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреИрд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдмреЙрдбреА рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдПрдБ
рдпрд╣ рдПрдХ рдЕрдирд╛рдо рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ jQuery рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рддрд╛рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо рд╕реНрдерд╛рди рдХреЛ рд▓рд┐рдЯ рди рдХрд░реЗрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо $ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ jQuery рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ $ .noConflict () рдХрд╛ рд╕рдореНрдореЗрд▓рди рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред
рддреЛ, рдпрд╣рд╛рдБ рдбрд┐рд╕реНрдХ рд╣реИ:
(function($) { var DATA_CMDS = 'timeslider-commands'; $.fn.timeslider = function(options) { var make = function() { var $this = $(this); if (options === null) { options = {}; } var $container = $('<div class="timeslider-container" unselectable="on"></div>'); var $downArrow = $('<div class="timeslider-arrow timeslider-down-arrow" unselectable="on"></div>'); var $upArrow = $('<div class="timeslider-arrow timeslider-up-arrow" unselectable="on"></div>'); var $sliderLine = $('<div class="timeslider-slider-line" unselectable="on"></div>'); var $labels = $('<div class="timeslider-labels" unselectable="on"></div>'); var $slider = $('<div class="timeslider-slider" unselectable="on"></div>'); var $input = $('<input type="hidden" />'); $sliderLine.append($slider); container.append($downArrow).append($sliderLine).append($upArrow); $container.append($labels); var $outmostContainer = $('<div class="timeslider-container"></div>'); $outmostContainer.append($container); $this.hide().after($outmostContainer); $this.data(DATA_CMDS, commands); }; return this.each(make); }; })(jQuery);
рд╣рдо рдореВрд▓ рд╢рд╛рд╕реА рдирд┐рдХрд╛рдп рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рд▓реЗрдЖрдЙрдЯ рд░рдЦрддреЗ рд╣реИрдВред рдЖрдк рдореВрд▓ рддрддреНрд╡ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрд▓рд╛рдЗрдбрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓реЗрдВ
var updateSlider = function() { $slider.show().css('left', toPixels(value) + 'px'); }; var updateInput = function() { $input.val(toText(value)); }; var updateArrows = function() { if (isLeftEdge(value)) { $downArrow.addClass('timeslider-disabled'); } else { $downArrow.removeClass('timeslider-disabled'); } if (isRightEdge(value)) { $upArrow.addClass('timeslider-disabled'); } else { $upArrow.removeClass('timeslider-disabled'); } }; var pleaseSet = function(newValue) { if ('string' == typeof newValue) { newValue = fromText(newValue); } else { newValue = normalize(newValue); } value = newValue; updateInput(); updateSlider(); updateArrows(); return $this.change(); }; pleaseSet(options.value);
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рд╕реНрд░реЛрдд рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛ рднреА рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ
var DATA_CMDS = 'timeslider-commands'; тАж var commands = { 'set': pleaseSet, 'get': pleaseGet }; $this.data(DATA_CMDS, commands); тАж var command = null; var follow = function() { var $this = $(this); return $this.data(DATA_CMDS)[command].call($this, options); }; if ('string' == typeof options) { command = options; options = arguments[1] || {}; var retValue = this; this.each(function() { retValue = follow.call(this); }); return retValue; } return this.each(make); };
рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг
рдмрдЯрди рдкреНрд░реЗрд╕ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝реЗрдВ, рдПрдХ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдбреНрд░рд╛ рдХрд░реЗрдВ, рдФрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)
рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдореЛ рдкреЗрдЬ рдмрдирд╛рдиреЗ рдФрд░ GitHub рдкрд░ рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред
github.com/akzhan/jquery-time-slider