I am trying to add a feature to scroll up and down a div based on button click. I was able to do the scroll down part easily, but got stuck wit the scroll up part and one more concern was a scenario, which I will explain,
Click on "Go Down" button.
and if I manually scroll down dragging down the scroll bar.
and now if I click on Go Down button again, the scroll bar will go to the previous position, as the variable assigned with the value for scrolling has an old value insteading of detecting current position of scroler.. I will add a jsfiddle link to show my work and also paste the code. What could I be doing wrong wit the scroll up option too!!
var scrolled=0;
$(document).ready(function(){
$("#downClick").on("click" ,function(){
scrolled=scrolled+300;
$(".cover").animate({
scrollTop: scrolled
});
});
$("#upClick").on("click" ,function(){
scrolled=scrolled-300;
$(".cover").animate({
scrollBottom: scrolled
});
});
$(".clearValue").on("click" ,function(){
scrolled=0;
});
});
<div class='header'><button id='upClick'>Go Up</button> <button id='downClick'>Go Down</button><button class='clearValue'>Clear Value</button> </div>
<div class='cover'><div class='rightSection'></div></div>
also is there a good plugin which has this functionality??
Just to add to other comments - it would be worth while to disable scrolling up whilst at the top of the page. If the user accidentally scrolls up whilst already at the top they would have to scroll down twice to start
scrollBottom
is not a method in jQuery.UPDATED DEMO - http://jsfiddle.net/xEFq5/10/
Try this:
Scrolling div on click of button.
Html Code:-
JQuery code for scrolling div:-
To solve your other problem, where you need to set
scrolled
if the user scrolls manually, you'd have to attach a handler to the window scroll event. Generally this is a bad idea as the handler will fire a lot, a common technique is to set a timeout, like so:You can use this simple plugin to add
scrollUp
andscrollDown
to your jQueryhttps://github.com/phpust/JQueryScrollDetector
Where did it come from
scrollBottom
this is not a valid property it should bescrollTop
and this can be positive(+
) or negative(-
) values to scroll down(+
) and up(-
), so you can change:to this
scrollTop
: