OpenSlides/openslides/agenda/static/javascript/jquery-ui-sliderAccess.min.js
2013-03-18 20:22:54 +01:00

13 lines
2.1 KiB
JavaScript

/*
* jQuery UI Slider Access
* By: Trent Richardson [http://trentrichardson.com]
* Version 0.3
* Last Modified: 10/20/2012
*
* Copyright 2011 Trent Richardson
* Dual licensed under the MIT and GPL licenses.
* http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
*
*/
(function($){$.fn.extend({sliderAccess:function(options){options=options||{};options.touchonly=options.touchonly!==undefined?options.touchonly:true;if(options.touchonly===true&&!("ontouchend"in document))return $(this);return $(this).each(function(i,obj){var $t=$(this),o=$.extend({},{where:'after',step:$t.slider('option','step'),upIcon:'ui-icon-plus',downIcon:'ui-icon-minus',text:false,upText:'+',downText:'-',buttonset:true,buttonsetTag:'span',isRTL:false},options),$buttons=$('<'+o.buttonsetTag+' class="ui-slider-access">'+'<button data-icon="'+o.downIcon+'" data-step="'+(o.isRTL?o.step:o.step*-1)+'">'+o.downText+'</button>'+'<button data-icon="'+o.upIcon+'" data-step="'+(o.isRTL?o.step*-1:o.step)+'">'+o.upText+'</button>'+'</'+o.buttonsetTag+'>');$buttons.children('button').each(function(j,jobj){var $jt=$(this);$jt.button({text:o.text,icons:{primary:$jt.data('icon')}}).click(function(e){var step=$jt.data('step'),curr=$t.slider('value'),newval=curr+=step*1,minval=$t.slider('option','min'),maxval=$t.slider('option','max'),slidee=$t.slider("option","slide")||function(){},stope=$t.slider("option","stop")||function(){};e.preventDefault();if(newval<minval||newval>maxval)return;$t.slider('value',newval);slidee.call($t,null,{value:newval});stope.call($t,null,{value:newval})})});$t[o.where]($buttons);if(o.buttonset){$buttons.removeClass('ui-corner-right').removeClass('ui-corner-left').buttonset();$buttons.eq(0).addClass('ui-corner-left');$buttons.eq(1).addClass('ui-corner-right')}var bOuterWidth=$buttons.css({marginLeft:((o.where=='after'&&!o.isRTL)||(o.where=='before'&&o.isRTL)?10:0),marginRight:((o.where=='before'&&!o.isRTL)||(o.where=='after'&&o.isRTL)?10:0)}).outerWidth(true)+5;var tOuterWidth=$t.outerWidth(true);$t.css('display','inline-block').width(tOuterWidth-bOuterWidth)})}})})(jQuery);