I’m using this script to switch layouts in a page:
$("span.switcher").click(function () {
$("span.switcher").toggleClass("swap"); /*!*/
$("ol.search-results").fadeOut("fast", function() {
$(this).fadeIn("fast").toggleClass("grid");
});
The script works fine, the problem I have is that if the switch view is down the page, the layout changes and then the page jumps back up.
If I add ‘return false’ right where you see the /* ! */ in the second line the script doesn’t work.
Also, as you can see, I’m using < span > instead of < a > since I was told that using other element other than < a > would stop the page from jumping.
Any idea how to fix the jumping of the page?
Thanks.
As this blog post mentions, the page is scrolled up because
The solution, also given in the blog, would be to use
fadeTo()instead offadeOut()andfadeIn(), like this:Regarding using an
aelement instead ofspan, you can do several things to prevent the default behaviour of the link (which would be to jump to the top of the page if itshrefattribute was"#"). How to do this and the effects of it is discussed in this SO question.