bonjour à tous

j'ai un petit problème avec mon site au niveau du scroll sous le navigateur opera

en effet je fais tout mon possible pour qu'il respecte les w3c et donc qu'il soit équivalent sous la plupart des navigateurs mais voilà le hic :

Quand on ecrit dans sa feuille de style :
html {overflow:hidden;}

les scrollbars disparaissent de tous les navigateurs. Jusque là tout va bien !

mais si notre page comporte un div plus grand que son écran
#mondiv {width:5000px;height:3000px;} 

et bien sous opéra on peut se déplacer quand même grâce à la molette de la souris !!!

est-il possible grace au css ou à un script de ne pas pouvoir se déplacer

merci d'avance à tous ceux qui répondront, en espérant que quelqu'un est la solution Smiley biggrin

papou
Deux questions au hasard: étant donné que overflow: hidden masque tout contenu qui dépasse des limites de l'élément,
1. quelles sont les dimensions de l'élément HTML ici en overflow: hidden, et comment sont-elles déterminées et éventuellement limitées?
2. ton élément de 5000px de haut dépasse-t-il des limites de l'élément HTML, ou bien les repousse-t-elles?
bonjour florent

En fait, que je délimite ou pas l'élément html (et même le body d'ailleurs) ça ne change rien on peut se déplacer grâce à la molette dans tout le div même s'il fait 1000000px de haut et large.
(je remarque par ailleurs qu'avec IE7 et mozilla aussi car je faisais des essais sur IE6 et safari)

En fait je fais un énorme div et on se déplace à l'intérieur (en cliquant sur des liens fixent) grâce au script de jquery et son scrollTo

ex:
scrollTo
*Lien mal formé Smiley cligne
En soit ce n'est pas gênant mais du coup se pose la question de l'utilité du script et de la maitrise de sa page Smiley ohwell

La seule solution serait de bloquer le click molette de la souris (comme il en existe un pour l'anti click droit) mais je préfère que le visiteur soit libre et non pas soumis à des contraintes Smiley decu (d'ailleurs je me demande si ce script existe Smiley rolleyes )

Mais je suis toujours preneur pour savoir si quelqu'un a une idée

merci encore d'avoir répondu

papou
Modifié par 6l20 (06 Feb 2009 - 23:27)
DIV conteneur global en width:100% et height:100% (attention, pas facile à négocier le height:100%, il y a des contraintes décrites dans les astuces de la partie Apprendre), positionné en relatif, en overflow:hidden. Dedans, ton bloc de 5000px de large ou autres dimensions, positionné en absolu.

À partir de là, tu peux fairer varier en JavaScript les coordonnées du bloc interne pour déplacer le contenu.

Par contre je te conseille d'attribuer une partie des styles en JS pour éviter que ça ne soit inutilisable si JS est désactivé. Et, bien sûr, même avec cette précaution ce que l'on fait ici c'est passer outre un mécanisme du navigateur, et il y a toujours le risque que pour un certain nombre d'utilisateurs le site soit inutilisable (que ce soit à cause de leur navigateurs, de leur configs ou de leurs modes de navigations).