Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/06/2011, 00h58   #1
Membre régulier
 
Avatar de kéraunos
 
Homme
Inscription : janvier 2005
Messages : 157
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2005
Messages : 157
Points : 71
Points : 71
Par défaut Scroll de la hauteur de la fenêtre

Bonjour.

En javascript, comment peut-on faire descendre (ou remonter) la barre de défilement verticale d'une hauteur équivalente à une fois la taille de la fenêtre du navigateur ?

Merci.
kéraunos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 13h02   #2
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 794
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 794
Points : 5 118
Points : 5 118
bonjour,

Code javascript :
1
2
3
4
5
6
7
8
9
10
 
function position()
{
	var h = document.body.scrollHeight;
 
	if (document.compatMode=="CSS1Compat")
		document.documentElement.scrollTop=h/2;
	else
		document.body.scrollTop=h/2;
}

fonctionne sous IE9 et FF4 pas testé sur d'autres navigateurs.
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 17h08   #3
Membre régulier
 
Avatar de kéraunos
 
Homme
Inscription : janvier 2005
Messages : 157
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2005
Messages : 157
Points : 71
Points : 71
Bonjour.

Cette solution ne fonctionne pas chez moi: la fonction position() fait aller la scrollbar à la moitié de la hauteur totale de la page. Alors que je veux qu'elle se décale d'une hauteur égale à celle de la fenêtre du navigateur.

Ce que je voudrais, de manière plus détaillée, c'est :
  • Un moyen de tester si la hauteur de la page dépasse celle de la fenêtre du navigateur
  • Un moyen de récupérer la hauteur de la fenêtre du navigateur
  • Un moyen de faire descendre ou remonter la scrollbar de la valeur que je veux

Merci.
kéraunos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 19h34   #4
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 794
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 794
Points : 5 118
Points : 5 118
Il faut quand même apprendre à se documenter un peu surtout que j'ai donné une bonne partie de la solution...

Donc voici un script fonctionnel sous IE et FF.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
function position()
{
	var h;
 
	if (document.all)	// IE
		h = document.body.clientHeight;
	else				// FF
		h = window.innerHeight;
 
	//alert(h);
 
	if (document.compatMode=="CSS1Compat")
		document.documentElement.scrollTop=h/2;
	else
		document.body.scrollTop=h/2;
}
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2011, 22h23   #5
Membre régulier
 
Avatar de kéraunos
 
Homme
Inscription : janvier 2005
Messages : 157
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : janvier 2005
Messages : 157
Points : 71
Points : 71
Si tu ne veux pas donner la solution complète, libre à toi.

En "me documentant un peu", j'ai trouvé ce que je voulais :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
function position() {
			var bodyH = document.body.scrollHeight;
			var screenH = self.innerHeight;
 
			if (bodyH > screenH) {
				$('#nav').animate({opacity: '1'}, 200); // faire apparaître la boîte de navigation si la taille du contenu de la page est plus grande que la hauteur de la fenêtre du navigateur
			} else {
				$('#nav').animate({opacity: '0'}, 200);
			}
		}
Pour scroller où je veux: window.scrollTo(x, y); en utilisant window.pageYOffset pour récupérer la hauteur de la scrollbar.

Merci quand même pour le début de la solution.
kéraunos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h26.


 
 
 
 
Partenaires

Hébergement Web