http://api.jquery.com/animate/jQuery Problème Utilisation de la Command .animate
Sur cette page, ils donnent une démonstration où ils ont un mouvement div gris sur l'écran avec le clic d'un bouton.
Notez que si vous cliquez assez souvent sur le bouton droit et que le bloc DIV atteint la fin du conteneur, il crée des barres de défilement horizontales et verticales.
J'ai téléchargé et modifié le code pour se débarrasser de la propriété de débordement et ce que j'ai jusqu'à présent fonctionne BEAUCOUP dans les navigateurs de bureau. Toutefois, Safari sur l'iPhone gère les choses un peu différemment. Pour une raison quelconque, Safari ignore complètement la propriété de débordement et à la place élargit la fenêtre du navigateur pour vous montrer où le bloc a été déplacé.
Je ne veux pas que vous puissiez voir le bloc. Je le veux caché jusqu'à ce que vous appuyez à nouveau sur le bouton.
Quelqu'un sait ce qu'il se passe?
Voici une photo de la question:
Voici mon code:
div {
position:absolute;
background-color:#abc;
width:100%;
height:100%;
margin:0px;
max-width:100%;
}
body {
margin:0px;
padding:0px;
}
* {
overflow:hidden;
clip:rect(auto, auto, auto, auto);
}
</style>
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>
</head>
<body>
<button id="left">«</button> <button id="right">»</button>
<div class="block"></div>
<script>
$("#right").click(function(){
$(".block").animate({"left": "+=110%"}, "medium");
});
$("#left").click(function(){
$(".block").animate({"left": "-=110%"}, "medium");
});
</script>
Même si je l'ai déplacé le bloc DIV hors de l'écran et je overflow: hidden comme global style, l'iPhone va faire de la place dans la fenêtre du navigateur pour vous montrer où le DIV a été déplacé. ENNUYEUX!
Merci d'avance!
Il semble que ce serait logique et je l'ai essayer avant. Mais pour le coup, je l'ai essayé exactement comme vous l'avez dit. Mais si vous enveloppez le bloc DIV dans un wrapper, il casse l'animation. Lorsque vous cliquez sur les boutons maintenant, rien ne se passe .... Qu'en penses-tu? Je suis complètement perdu ... P.S. Pour clarifier, je cherche à faire glisser la DIV entière hors de l'écran et ne pas l'avoir visible jusqu'à ce que vous cliquez à nouveau sur le bouton pour le faire revenir.Essayer d'imiter une transition entre deux pages similaires à ce que vous verriez naviguer dans les menus d'une application iPhone native. – Alex
Je suppose que cela est dû à la façon dont vous déplacez le div gris. La signification de "110%" change en fonction de l'élément parent. J'utiliserais plutôt les valeurs de pixels actuelles, et récupèrerais la largeur du parent dans le javascript. Quelque chose comme: var offset = $ ('. Wrapper'). OuterWidth(); $ ('.block'). css ({left: offset}); (ps, désolé pour le formatage, ne peut pas faire des sauts de ligne sur l'ipad:/ –
Yah mais il ne change toujours pas le fait que lorsque vous envelopper le bloc dans un wrapper DIV il casse la fonctionnalité d'animation .... – Alex