1481 sujets

Web Mobile et responsive web design

Bonjour,
poster ce message dans un sujet "résolu" était sûrement une mauvaise idée, je le reposte donc ici si j'ai le droit Smiley smile
Malgré des tentatives avec height/width/scale de la balise viewport, je rencontre un problème avec le passage en mode paysage. Si je charge le site en mode paysage, tout
va bien. Mais si je change l'orientation en portrait puis de nouveau en paysage, alors il zoome…

J'ai essayé d'ajouter le JS suivant lors du changement d'orientation mais ça ne résout rien, au contraire.
document.querySelector("meta[name=viewport]").setAttribute(
'content',
'width=device-width, initial-scale=1.0');


URL d'exemple :
http://www.parisdigest.com/menus/mobile.htm

Merci d'avance !
Pardon voici une URL qui montre peut-être mieux le problème (images et JS manquants mais ce n'est pas un problème) :
http://credit.com.pt/mobile.htm

Ce problème survient sur mon iPhone 4s iOS 7, je ne suis pas sûr qu'un écran aussi grand que l'iPad mini soit touché...

Merci Smiley smile
Bonjour , voici une solution pure css
/* iPhone */
@media only screen and (width:320px) and (device-width:320px) and (device-height:480px) and (orientation: landscape) {
	body {
		-webkit-transform: scale(0.667);
		-webkit-transform-origin: top right;
		position: absolute;
		right: 0;
		top: 0;
		width: 480px;
	}
}
/* iPad */
@media only screen and (width:768px) and (device-width:768px) and (device-height:1024px) and (orientation: landscape) {
	body {
		-webkit-transform: scale(0.75);
		-webkit-transform-origin: top right;
		position: absolute;
		right: 0;
		top: 0;
		width: 1024px;
	}
}

Une autre avec javascript

if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {
    var viewportmeta = document.querySelector('meta[name="viewport"]');
    if (viewportmeta) {
        viewportmeta.content = 'width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0';
        document.body.addEventListener('gesturestart', function () {
            viewportmeta.content = 'width=device-width, minimum-scale=0.25, maximum-scale=1.6';
        }, false);
    }
}