11489 sujets

JavaScript, DOM et API Web HTML5

Bonjour bonjour ! (et merci d'avance)

Voici le cas (très simple) :
- une image plus grande que l'écran
- clic = scroll de l'image vers la droite si besoin, sinon image suivante
if( window.pageXOffset < (maxScrollWidth - screenWidth - 10) ){
	window.scrollTo(maxScrollWidth,0);// On la scrolle nous-même jusqu'à l'extrémité droite
}else{ 
	gotoScreen('next');// Sinon on passe à la page suivante
}
ça marche très bien lorsque l'utilisateur ne zoome pas sur sa tablette :
> lorsque window.pageXOffset > 0, OK, l'image est à droite (donc je passe à l'image suivante)(si le scroll agit, c'est qu'il n'y a pas de zoom)
> lorsqu'il zoome, window.pageXOffset == 0, je ne sais plus si je suis à gauche d'une image incomplète (non zoomée) ou à gauche d'une image visible dans sa totalité (zoomée) : je décale vers la droite ou je vais à l'image suivante ?

Exemples chiffrés sur une tablette (avec le test du code ci-dessus) :
sans zoom : if (180 < 980 - 800 -10 ) (image à gauche : 180 px sont masqués à droite)
avec zoom : if (0 < 980 - 800 -10 ) (image zoomé, donc rien de masqué)

sans zoom : if (0 < 980 - 800 -10 ) (image à droite: 180 px sont masqués à gauche)

Comment différencier les deux derniers cas ?
Modifié par Gill (26 Mar 2014 - 08:54)
La question, en fait, c'était : "comment détecter un zoom ?"
ou mieux :
"comment reconnaître l'effet indésirable d'un zoom pour le prendre en charge ?"

C'était très simple :
if( window.pageXOffset < (maxScrollWidth - screenWidth - 10) ){
	window.scrollTo(maxScrollWidth,0);// On la scrolle nous-même jusqu'à l'extrémité droite
	if( window.pageXOffset < (maxScrollWidth - screenWidth - 10) ){
		gotoScreen('next');// Si le scroll n'a pas agit, c'est qu'il y a un zoom : on passe à la suite
	}
}else{ 
	gotoScreen('next');// Sinon on passe à la page suivante
}
...mais les choses auraient été bien plus simple, si le DOM comportait une variable facile à tester !
ex :
pourcentZoom = touch.zoomLevel;
posTop = touch.zoomTop;
widthZoom = touch.zoomWidth;
etc...
Qu'on puisse maîtriser ce qu'on nous impose, quoi ! Smiley fache