// vertical slider control var slider4 = new Control.Slider('handle4', 'track4', { axis: 'vertical', onSlide: function(v) { scrollVertical(v, $('blogslist'), slider4); }, onChange: function(v) { scrollVertical(v, $('blogslist'), slider4); } }); // scroll the element vertically based on its width and the slider maximum value function scrollVertical(value, element, slider) { element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight)); } //alert($('blogslist').scrollHeight); //alert($('blogslist').offsetHeight); // disable vertical scrolling if text doesn't overflow the div if ($('blogslist').scrollHeight <= $('blogslist').offsetHeight) { slider4.setDisabled(); $('wrap4').hide(); } //Clicking on top and bottom arrows will move up and down function moveUp(event) { slider4.setValueBy(-0.1); } function moveDown(event) { slider4.setValueBy(0.1); } Event.observe('track-top4', 'click', moveUp); Event.observe('track-bottom4', 'click', moveDown); // mouse wheel code from http://adomas.org/javascript-mouse-wheel/ function handle4(delta) { slider4.setValueBy(-delta/10); } /** Event handler for mouse wheel event. */ function wheel4(event){ var delta = 0; if (!event) /* For IE. */ event = window.event; if (event.wheelDelta) { /* IE/Opera. */ delta = event.wheelDelta/120; /** In Opera 9, delta differs in sign as compared to IE. */ /*if (window.opera) delta = -delta;*/ } else if (event.detail) { /** Mozilla case. */ /** In Mozilla, sign of delta is different than in IE. * Also, delta is multiple of 3. */ delta = -event.detail/3; } /** If delta is nonzero, handle it. * Basically, delta is now positive if wheel was scrolled up, * and negative, if wheel was scrolled down. */ if (delta) handle4(delta); /** Prevent default actions caused by mouse wheel. * That might be ugly, but we handle scrolls somehow * anyway, so don't bother here.. */ if (event.preventDefault) event.preventDefault(); event.returnValue = false; } // mozilla Event.observe('blogslist', 'DOMMouseScroll', wheel4); // IE/Opera Event.observe('blogslist', 'mousewheel', wheel4);