Guest User

Untitled

a guest
Feb 20th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. jQuery.fn.slider = function() {
  2. var handle = this;
  3.  
  4. function drag_handler(e) {
  5. // offset the mouse position half of the handles width
  6. var pos = e.pageX;
  7. var container = handle.siblings('.slider_bar');
  8. var offset = container.offset()
  9. pos = Math.min(Math.max(pos, offset.left), offset.left + container.width());
  10.  
  11. // early exit if drag outside container bounds
  12. // if( pos < container.offset().left
  13. // || pos > container.offset().left + container.width()) return;
  14.  
  15. // position the handle
  16. var sliderOffset = pos - container.offset().left;
  17. handle.css('left', sliderOffset - (handle.width()/2));
  18.  
  19. // sliderchange is an event that will fire on the slider
  20. // element, listen to it to make adjustments to the page when the slider moves
  21. // $('#slider_handle1').bind('sliderchange', function(percent) {
  22. // // do something
  23. // });
  24. var percent = sliderOffset / container.width();
  25. handle.trigger('sliderchange', percent);
  26. }
  27.  
  28. // when the mouse is released, stop moving the slider
  29. function release_handler(e) {
  30. jQuery('html').unbind('mousemove', drag_handler);
  31. }
  32.  
  33. handle
  34. .mousedown(function(e) {
  35. // wire up the listeners, only listen for mouseup once
  36. jQuery('html')
  37. .mousemove(drag_handler)
  38. .one('mouseup', release_handler);
  39.  
  40. e.preventDefault();
  41. });
  42.  
  43. return this;
  44. };
  45.  
  46. jQuery(function($) {
  47. $('#slider_handle1')
  48. .slider()
  49. .bind('sliderchange', function(e, percent) {
  50. var fill = $(this).siblings('.slider_fill');
  51. var bar = $(this).siblings('.slider_bar');
  52. var width = bar.width() * percent;
  53. fill.width(width);
  54.  
  55. $('score').html(10 * percent);
  56. });
  57. });
Add Comment
Please, Sign In to add comment