jqueryui_sliders.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. /* ------------------------------------------------------------------------------
  2. *
  3. * # jQuery UI sliders
  4. *
  5. * Demo JS code for jqueryui_sliders.html page
  6. *
  7. * ---------------------------------------------------------------------------- */
  8. // Setup module
  9. // ------------------------------
  10. var JqueryUiSliders = function() {
  11. //
  12. // Setup module components
  13. //
  14. // Sliders
  15. var _componentUiSlider = function() {
  16. if (!$().slider) {
  17. console.warn('Warning - jQuery UI components are not loaded.');
  18. return;
  19. }
  20. //
  21. // Horizontal sliders
  22. //
  23. // Basic slider
  24. $('.jui-slider').slider({
  25. isRTL: $('html').attr('dir') == 'rtl' ? true : false
  26. });
  27. // Custom start value
  28. $('.jui-slider-value').slider({
  29. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  30. value: 20,
  31. min: 0,
  32. max: 40
  33. });
  34. // Snap to increments
  35. $('.jui-slider-increments').slider({
  36. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  37. value: 100,
  38. min: 0,
  39. max: 500,
  40. step: 50
  41. });
  42. // Range slider
  43. $('.jui-slider-range').slider({
  44. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  45. range: true,
  46. min: 0,
  47. max: 60,
  48. values: [10, 50]
  49. });
  50. // Fixed minimum
  51. $('.jui-slider-range-min').slider({
  52. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  53. range: 'min',
  54. value: 37,
  55. min: 1,
  56. max: 700,
  57. });
  58. // Fixed maximum
  59. $('.jui-slider-range-max').slider({
  60. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  61. range: 'max',
  62. min: 1,
  63. max: 10,
  64. value: 2
  65. });
  66. // Animated slider
  67. $('.jui-slider-animated').slider({
  68. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  69. range: 'max',
  70. value: 50,
  71. animate: true
  72. });
  73. // Slider methods
  74. $('.jui-slider-methods').slider({
  75. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  76. range: true,
  77. min: 0,
  78. max: 60,
  79. values: [ 15, 45 ]
  80. });
  81. var sliderMethods = document.querySelector('.switchery');
  82. var sliderMethodsInit = new Switchery(sliderMethods);
  83. sliderMethods.onchange = function() {
  84. if(sliderMethods.checked) {
  85. $('.jui-slider-methods').slider('enable');
  86. }
  87. else {
  88. $('.jui-slider-methods').slider('disable');
  89. }
  90. };
  91. // Disabled slider
  92. $('.jui-slider-disabled').slider({
  93. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  94. range: 'min',
  95. value: 50,
  96. disabled: true
  97. });
  98. //
  99. // Vertical sliders
  100. //
  101. // Basic
  102. $('.jui-slider-vertical-default > span').each(function() {
  103. // Read initial values from markup and remove that
  104. var value = parseInt($(this).text(), 10);
  105. $(this).empty().slider({
  106. value: value,
  107. animate: true,
  108. orientation: 'vertical'
  109. });
  110. });
  111. // Range slider
  112. $('.jui-slider-vertical-range-min > span').each(function() {
  113. // Read initial values from markup and remove that
  114. var value = parseInt($(this).text(), 10);
  115. $(this).empty().slider({
  116. value: value,
  117. range: 'min',
  118. animate: true,
  119. orientation: 'vertical'
  120. });
  121. });
  122. // Fixed maximum
  123. $('.jui-slider-vertical-range-max > span').each(function() {
  124. // Read initial values from markup and remove that
  125. var value = parseInt($(this).text(), 10);
  126. $(this).empty().slider({
  127. value: value,
  128. range: 'max',
  129. animate: true,
  130. orientation: 'vertical'
  131. });
  132. });
  133. // Default handle
  134. $('.jui-slider-vertical-handle-default > span').each(function() {
  135. // Read initial values from markup and remove that
  136. var value = parseInt($(this).text(), 10);
  137. $(this).empty().slider({
  138. value: value,
  139. range: 'min',
  140. animate: true,
  141. orientation: 'vertical'
  142. });
  143. });
  144. // Slider pips
  145. // ------------------------------
  146. //
  147. // Horizontal sliders
  148. //
  149. // Basic
  150. $('.jui-slider-pips').slider({
  151. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  152. max: 14,
  153. value: 7
  154. });
  155. $('.jui-slider-pips').slider('pips');
  156. // With tooltip
  157. $('.jui-slider-floats').slider({
  158. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  159. max: 14,
  160. value: 7
  161. });
  162. $('.jui-slider-floats').slider('pips');
  163. $('.jui-slider-floats').slider('float');
  164. // Both pips and tooltip
  165. $('.jui-slider-floats-labels').slider({
  166. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  167. max: 6,
  168. value: 3
  169. });
  170. $('.jui-slider-floats-labels').slider('pips');
  171. $('.jui-slider-floats-labels').slider('float', {
  172. pips: true
  173. });
  174. // Label with pips
  175. $('.jui-slider-labels').slider({
  176. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  177. max: 8,
  178. value: 4
  179. });
  180. $('.jui-slider-labels').slider('pips' , {
  181. rest: 'label'
  182. });
  183. // Hide rest of the points
  184. $('.jui-slider-limits').slider({
  185. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  186. max: 20,
  187. range: true,
  188. values: [ 4, 16 ]
  189. });
  190. $('.jui-slider-limits').slider('pips' , {
  191. rest: false
  192. });
  193. // Display pips only
  194. $('.jui-slider-pips-only').slider({
  195. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  196. max: 20
  197. });
  198. $('.jui-slider-pips-only').slider('pips', {
  199. first: 'pip',
  200. last: 'pip'
  201. });
  202. // Suffix and prefix
  203. $('.jui-slider-suffix-prefix').slider({
  204. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  205. max: 4,
  206. value: 2
  207. });
  208. $('.jui-slider-suffix-prefix').slider('pips', {
  209. rest: 'label',
  210. prefix: '$',
  211. suffix: '.00'
  212. });
  213. // Custom label text
  214. var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  215. $('.jui-slider-labels-custom').slider({
  216. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  217. min: 0,
  218. max: 11,
  219. value: 5
  220. });
  221. $('.jui-slider-labels-custom').slider('pips' , {
  222. rest: 'label',
  223. labels: months
  224. });
  225. $('.jui-slider-labels-custom').on('slidechange', function(e,ui) {
  226. $('#jui-slider-labels-custom-output').html('You selected ' + '<span class="text-danger">' + months[ui.value] + '</span>');
  227. });
  228. // Label localization
  229. var hanziNums = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十'];
  230. $('.jui-slider-local').slider({
  231. isRTL: $('html').attr('dir') == 'rtl' ? true : false,
  232. min: 1,
  233. max: 10,
  234. value: 5
  235. });
  236. $('.jui-slider-local').slider('pips' , {
  237. labels: hanziNums,
  238. rest: 'label'
  239. });
  240. $('.jui-slider-local').slider('float' , {
  241. labels: hanziNums
  242. });
  243. //
  244. // Vertical sliders
  245. //
  246. // Basic
  247. $('.jui-slider-vertical-pips > span').each(function() {
  248. var value = parseInt($(this).text());
  249. $(this).empty().slider({
  250. min: 0,
  251. max: 10,
  252. value: value,
  253. animate: true,
  254. range: 'min',
  255. orientation: 'vertical'
  256. });
  257. });
  258. $('.jui-slider-vertical-pips > span').slider('pips');
  259. // With labels
  260. $('.jui-slider-vertical-labels > span').each(function() {
  261. var value = parseInt($(this).text());
  262. $(this).empty().slider({
  263. min: 0,
  264. max: 4,
  265. value: value,
  266. animate: true,
  267. range: 'min',
  268. orientation: 'vertical'
  269. });
  270. });
  271. $('.jui-slider-vertical-labels > span').slider('pips' , {
  272. rest: 'label'
  273. });
  274. // With tooltip and handle
  275. $( '.jui-slider-vertical-minmax > span' ).each(function() {
  276. var value = parseInt($(this).text());
  277. $(this).empty().slider({
  278. min: 0,
  279. max: 10,
  280. value: value,
  281. animate: true,
  282. range: 'min',
  283. orientation: 'vertical'
  284. });
  285. });
  286. $('.jui-slider-vertical-minmax > span').slider('pips');
  287. $('.jui-slider-vertical-minmax > span').slider('float');
  288. };
  289. //
  290. // Return objects assigned to module
  291. //
  292. return {
  293. init: function() {
  294. _componentUiSlider();
  295. }
  296. }
  297. }();
  298. // Initialize module
  299. // ------------------------------
  300. document.addEventListener('DOMContentLoaded', function() {
  301. JqueryUiSliders.init();
  302. });