![]() |
Forum SELFHTML: Archives: |
|
|
Le message suivant est de: arnal69130, 14. 12. 2004, 10:30
Bonjour à tous,
Sur une page web, je souhaite avoir un ascenseur horizontal au milieu de la page et pouvoir le manipuler en javascript. Le but étant de proposer à l'utilisateur une sorte de curseur.
Pour créer l'ascenseur, j'ai simplement positionné 2 "div" sur la page : un assez large et pas très haut (id="asc") et un vide mais très très large (id="curs"). Voici, en gros, le code :
[code]
<html>
<head>
<style type="text/css">
#asc { position:absolute; width:670px; height:16px; overflow:auto; }
#curs { width:288000px; }
</style>
<script type="text/javascript">
function recupPosAsc(valAsc)
{ alert(valAsc); }
</script>
</head>
<body>
<div id="asc" onscroll="recupPosAsc(this.scrollLeft);">";
<div id="curs"></div>
</div>
</body>
</html>
[/code]
J'arrive bien à récupérer la position de l'ascenseur lors d'un scroll.
Mon problème est le suivant :
-> Comment déplacer l'ascenseur à une position donnée ? Avec l'objet window, il suffit de faire window.scrollTo(x,y), mais je ne trouve pas d'équivalent de cette fonction pour un objet div.
J'ai bien essayé :
[code]
...
<script type="text/javascript">document.getElementById("asc").scrollTo(90,0);</script>
...
[/code]
Mais la methode scrollTo n'existe pas sur cet objet.
Quelqu'un a-t-il réussi à contourner ce problème ?
Merci d'avance.
Arnaud
Le message suivant est de: Bartouille,
bertrand.wattel_pasDeSpam@free.fr, 17. 12. 2004, 04:11
http://mythes.foret.free.fr
»» Bonjour à tous,
Bonjour
»» Sur une page web, je souhaite avoir un ascenseur horizontal au milieu de la page et pouvoir le manipuler en javascript. Le but étant de proposer à l'utilisateur une sorte de curseur.
»» -> Comment déplacer l'ascenseur à une position donnée ? Avec l'objet window, il suffit de faire window.scrollTo(x,y), mais je ne trouve pas d'équivalent de cette fonction pour un objet div.
Hélas, trois fois hélas, ton problème n'a guère de solution que sous IE5+ avec la méthode doScroll qui permet de simuler un clic sur une barre de scroll.
Ce n'est toutefois pas la panacée car le déplacement se fait par incrément de 1. Aussi, il ne faut guère compter dessus pour déplacer rapidement l'ascenceur d'un bout à l'autre de la barre de défilement.
Pour plus de renseignements sur la méthode doScroll qui est, je me répète, uniquement disponible sur IE5+, autant aller voir les Bill Guys :
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/doscroll.asp
Il y a peut-être une autre solution, c'est de créer par avance tout un jeu de barre de défilement avec les positions d'ascenceur prédéfinies (avant l'affichage de la page pour pouvoir modifier scrollLeft) et de jouer ensuite sur la propriété display pour faire apparaître la barre idoine. C'est très lourd, surtout s'il faut beaucoup d'incréments.
La dernière option, qui n'est pas la plus mauvaise à mon avis est de laisser tomber la barre de défilement pour en créer une toi-même et de l'animer en DHTML en fonction du survol de souris ou de paramètres automatiques. Cette solution est plus lourde en code, mais elle a le mérite d'être très portable et de laisser une grande liberté.
Et s'il y a d'autres solutions, je suis preneur.
Bonne nuit !
Bartouille
© 1998-2004
selfhtml@fr.selfhtml.org