Quantcast
Channel: fixed when scrolling but stop at footer - Stack Overflow
Viewing all articles
Browse latest Browse all 2

fixed when scrolling but stop at footer

$
0
0

UPDATEI've been testing a bit with the sticky position but it doesn't work on Safari version 11.1. Safari is the highest browser in analytics. So I guess I'm still looking for a jQuery solution. Although the answer from Michał Sadowski helped allot.


I'm trying to get a fixed element when scrolling but it needs to stop being fixed and start scrolling when it reaches the footer.

I'm using this code: Make scrolling sidebar stop at footer

My CSS, HTML are exactly the same as in this fiddle right now.

But the problem is, my fixed element needs to have an offset of +60 because my header (menu) is 55px in height. I've got the offset to work sort off. Right now, I use the following code.

function sticky_relocate() {    var window_top = $(window).scrollTop()+60;    var footer_top = $("#footer").offset().top;    var div_top = $('#sticky-anchor').offset().top;    var div_height = $("#sticky").height();    var padding = 20;  // tweak here or get from margins etc    if (window_top + div_height > footer_top - padding)        $('#sticky').css({top: (window_top + div_height - footer_top + padding) * -1})    else if (window_top > div_top) {        $('#sticky').addClass('stick');        $('#sticky').css({top: 60})    } else {        $('#sticky').removeClass('stick');    }}$(function () {    $(window).scroll(sticky_relocate);    sticky_relocate();});

This kind of works. But when I reach the #footer the top jumps from 60px to -1.8414. So the transition isn't seamless. It "jumps" when I reach the footer.

I've tried a whole bunch of things.

  • Like adding 60px to the #sticky div.
  • When It removes the class stick I followed that up with $('#sticky').css({top: 60})

But nothing takes away the "jump" is there anyone who could help me to get this to work or has a similar code snippet?. Thanks in advance!


Viewing all articles
Browse latest Browse all 2

Trending Articles





<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>