J'ai créé une fonction qui change la 'position' d'un DIV en 'fixed' après un certain point de défilement. Le but est de le garder visible sur l'écran pendant le défilement de la page. Fonctionne bien (mais pas dans IE6).Création d'une fonction Scroll Follow mais nécessité d'éviter qu'elle ne chevauche la fonction Footer Div
Le problème est que lorsque j'arrive au bas d'une page, je ne veux pas que le DIV chevauche le pied de page. Je devine que je devrais changer la 'position' de 'fixed' en 'absolute', plaçant la propriété 'bottom' à quelque chose de légèrement plus grand que la hauteur du footer. Il est préférable de tester ce problème sur le this page. Assurez-vous que votre fenêtre est redimensionnée plus petit afin que vous puissiez voir la barre latérale chevauchant le pied de page.
Voici mon code à ce jour:
$(document).ready(function(){
var element = $("#sidebar");
var window_height = $(window).height();
var element_height = element.height();
// On scroll, set or unset the fixed position
$(window).scroll(function() {
if (window_height > element_height) {
if ($(document).scrollTop() > 220) {
element.css("position","fixed");
element.css("top","9px");
element.css("padding-top","0");
}
else {
element.css("position","relative");
element.css("top","0");
element.css("padding-top","57px");
}
}
else {
element.css("position","relative");
element.css("top","0");
element.css("padding-top","57px");
}
});
// On window resize, set or unset the fixed position
$(window).resize(function(){
window_height = $(window).height();
if (window_height > element_height) {
if ($(document).scrollTop() > 220) {
element.css("position","fixed");
element.css("top","9px");
element.css("padding-top","0");
}
else {
element.css("position","relative");
element.css("top","0");
element.css("padding-top","57px");
}
}
else {
element.css("position","relative");
element.css("top","0");
element.css("padding-top","57px");
}
});
});