I found a bit of script to make a div loginform
slide in from the edge of the back, and back out, on different clicks, of loginshow
and loginhide
. Also a bit of script to make topbar
(containing the 'show' button) and loginform
to scroll down when I scroll down the page.
My intent is for loginform
to be hidden and shown from anywhere, so you do not have to scroll to the top of the page to access the fields/elements on that div.
However whenever I click loginshow
or loginhide
, the page jumps back to the top as the loginform
animation runs.
This is the script
var main = function() {
$('#loginshow').click(function(){
$('#topbar').animate({
left: '245px'
}, 200);
$('#loginform').delay(100).animate({
left: '0px'
}, 200);
$('#loginhide').delay(200).animate({
left: '0px'
}, 100);
});
$('#loginhide').click(function(){
$('#loginhide').animate({
left: '-80px'
}, 200)
$('#loginform').delay(200).animate({
left: '-240px'
}, 200)
$('#topbar').delay(300).animate({
left: '5px'
}, 200);
})
$(window).on('scroll', function () {
var scrollPos = $(document).scrollTop();
$('#loginform').css({
top: scrollPos
});
$('#topbar').css({
top: scrollPos
});
}).scroll();
};
$(document).ready(main);
How can I stop the loginshow
and loginhide
functions make the page jump back up?
Thanks for any help, I have only just started with javascript yesterday.
Did you tried using jQuery preventDefault()?