Comment faire en sorte qu'un élément div monte et descende lorsque l'utilisateur fait défiler la page? (où cet élément est toujours visible)
Vous souhaitez appliquer la propriété fixed au style de position de l'élément.
position: fixed;
Avec quel navigateur travaillez-vous? Tous les navigateurs ne prennent pas en charge la propriété fixed. En savoir plus sur qui le soutient, qui ne le fait pas et certains travaillent ici
http://webreflection.blogspot.com/2009/09/css-position-fixed-solution.html
Juste pour une solution plus animée et plus mignonne:
$(window).scroll(function(){
$("#div").stop().animate({"marginTop": ($(window).scrollTop()) + "px", "marginLeft":($(window).scrollLeft()) + "px"}, "slow" );
});
Et un stylo pour ceux qui veulent voir: http://codepen.io/think123/full/mAxlb , et fork: http://codepen.io/think123/pen/ mAxlb
Update: et une solution jQuery non animée:
$(window).scroll(function(){
$("#div").css({"margin-top": ($(window).scrollTop()) + "px", "margin-left":($(window).scrollLeft()) + "px"});
});
en utilisant position:fixed
seul est acceptable si vous n'avez pas d'en-tête ou de logo en haut de votre page. Cette solution prend en compte le degré de défilement de la fenêtre et déplace la division lorsque vous avez fait défiler votre en-tête. Il sera ensuite verrouillé à nouveau lorsque vous atteindrez le sommet.
if($(window).scrollTop() > Height_of_Header){
//begin to scroll
$("#div").css("position","fixed");
$("#div").css("top",0);
}
else{
//lock it back into place
$("#div").css("position","relative");
}
Voici le code JQuery
$(document).ready(function () {
var el = $('#Container');
var originalelpos = el.offset().top; // take it where it originally is on the page
//run on scroll
$(window).scroll(function () {
var el = $('#Container'); // important! (local)
var elpos = el.offset().top; // take current situation
var windowpos = $(window).scrollTop();
var finaldestination = windowpos + originalelpos;
el.stop().animate({ 'top': finaldestination }, 1000);
});
});
Ajoutez simplement position: fixed;
dans ton style div.
J'ai vérifié et ça fonctionne bien dans mon code.
Vous voudrez peut-être consulter l'article récent de Remy Sharp sur les éléments flottants fixes sur jQuery for Designers , qui contient une vidéo de Nice et décrit comment appliquer cet effet. dans le script client