Créer une div fixe lors d'un scroll

WRInaute occasionnel
Bonjour à tous,

Question technique dont je vais essayer d'être précis...

Je dispose d'une type contenant une zone de texte principale et à droite une sidebar.
Je souhaite que me sidebar (plus "courte" et au format 250px x 550px) soit toujours visible, même lorsque je scroll vers le bas.

J'ai donc rajouté dans ma <div> :

Code:
position : fixed;

Mais j'ai quelques problèmes :

1°/ A priori, ce code n'est pas compatible Internet Explorer. Que faut-il faire pour que cela le devienne ?
2°/ Je souhaite que ma <div> s'arrête et ne passe pas au dessous de mon footer
3°/ Lorsque je scroll vers le bas, la <div> descend dès le début du scroll alors que je souhaiterai qu'elle commence à descendre que lors
4°/ Mon thème graphique est responsive; dès lors que je passe sur un écran plus petit, la <div> en question disparait... je souhaite qu'elle reste visible mais qu'elle reste fixe.

Un grand merci !

P.S : comme vous pourrez le constater le développement n'est pas mon métier.
 
WRInaute discret
Ceci peut être assuré avec du jQuery, un truc dans le genre :

Code:
$(function () {
    $(window).scroll(function () {
       DivSrollMax();
    });
});

var hauteurMax = 230; //Hauteur arbitrairement choisie
function DivSrollMax() {
    if (hauteurMax < $(window).scrollTop()) {
        var top = $(window).scrollTop() - hauteurMax ;
        $("#monDivId").css("top", top + "px");
    }
    else {
        $("#monDivId").css("top", "");
    }
}


*Edit : Humm non la réponse à votre question est plutôt :

Code:
selecteurCSS {
	/* pour les navigateurs */
	position: fixed;
	top: XXXpx;
	/* pour IE < 7 */
	_position: absolute;
	top: expression(body.scrollTop + XXX + "px");
	}
avex XXX = la valeur de votre choix.

Utilisez la balise conditionnelle suivante pour ajouter cette CSS spécifique à IE < 7:
Code:
<!--[if lt IE 7]> pour IE inférieur à IE 7 <![endif]-->
 
WRInaute occasionnel
Bonjour 1eB,

Merci pour votre réponse et votre réactivité.

Je ne comprend pas exactement le " *Edit : Humm non la réponse à votre question est plutôt : " : je ne tiens plus compte de ce que vous avez écrit au-dessus de ce message.

Concernant votre recommandation :

Code:
 selecteurCSS {
   /* pour les navigateurs */
   position: fixed;
   top: XXXpx;

Cela me permet effectivement d'avoir un sidebar fixe, mais ne répond pas à mon problème de scroll. Peut-être que cela n'est pas très explicite. Je vous invite à regarder ce site : *3w.evaneos.com/armenie/itineraire/7606-a-la-decouverte-de-la-terre-millenaire-randonnee-culturelle/. Je souhaite (quasiment) le même comportement au niveau de la sidebar.

Et dernier point concernant le responsive : comment désactiver ce système lorsque l'on est sur une résolution plus petite ?

Encore merci.
 
WRInaute discret
Bonjour,

C'est donc bien le script jQuery qui permettra d'obtenir ce résultat.
Pour désactiver le système, pareil, il faut le faire avec du javascript.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut