Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1677 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  S'assurer qu'un element est visible a l'ecran [resolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

S'assurer qu'un element est visible a l'ecran [resolu]

n°1213989
fluminis
Posté le 03-10-2005 à 22:54:21  profilanswer
 

Bonjour,
 
Est ce qu'il est possible de savoir en javascript si un element dont je connais l'ID est visible à l'écran ?
 
voila en fait ce que je veux faire c'est un peu comme avec les anchors (les <a name="truc"> )
mais en javascript, l'utilisateur clic sur un lien et l'assenseur se déplace si besoin.
Je ne sais pas si je peux utiliser les anchors car je voudrais en plus exécuter des fonctions javascript.
 
<a href="javascript:voir('monId')">Lien</a>
 
et  
 
function voir(monID){
 
     //<-- ici, s'assurer que monID est visible a l'ecran
 
     //traitement sur monID, pour le mettre en gras et en rouge (par exemple)
}
 
Merci d'avance


Message édité par fluminis le 04-10-2005 à 11:57:34

---------------
http://poemes.iceteapeche.com - http://www.simuland.net
mood
Publicité
Posté le 03-10-2005 à 22:54:21  profilanswer
 

n°1214014
olivthill
Posté le 03-10-2005 à 23:33:09  profilanswer
 

:hello:  
Voici comment déterminer en Javascript si un élément est visble ou caché :

 obj=document.getElementById(monId);  
 if (obj.style.display=='none')
    alert("Invisible')  
 if (obj.style.display=='block')
    alert("Visible')


n°1214017
benji_100
Posté le 03-10-2005 à 23:38:19  profilanswer
 

T'es sur que ca depend que de cette propriété la oliv?
 
Et si tu intercepte l'evenement clic ca passe pas?

n°1214018
fluminis
Posté le 03-10-2005 à 23:38:27  profilanswer
 

:) je me suis mal exprimer,
 
visible dans le sens affiché à l'ecran dans la zone visible par l'utilisateur.
(le texte est en mode block tout le temps)
 
caché dans le sens il faut que l'utilisateur utilise sa scrollbar pour voir le texte


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1214023
olivthill
Posté le 03-10-2005 à 23:40:54  profilanswer
 

Désolé, je n'avais pas compris cela. Mon code ne s'applique donc pas à la question posée.

n°1214025
benji_100
Posté le 03-10-2005 à 23:41:51  profilanswer
 

j m explique :

Code :
  1. <a href="#ancre"><span onclick="javascript:voir('monId')">Lien</span></a>


n°1214029
fluminis
Posté le 03-10-2005 à 23:56:21  profilanswer
 

Yeah ! benji_100 ça marche !
Merci bien


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1214066
gatsusat
Posté le 04-10-2005 à 06:10:07  profilanswer
 

benji_100 a écrit :

j m explique :

Code :
  1. <a href="#ancre" onclick="javascript:voir('monId')">Lien</a>



 
T'es vraiment obligé d'encadrer systématiquement tous tes trucs par des balises inutiles ?

n°1214131
fluminis
Posté le 04-10-2005 à 10:19:03  profilanswer
 

La version condensée me convient et semble fonctionner
Mais doit-on mettre "javascript:" ?
onclick est un evenement javascript non ? donc <a href="#ancre" onclick="voir('monId')">Lien</a> devrait fonctionner
 
qu'en pensez vous ?


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1214183
gatsusat
Posté le 04-10-2005 à 11:20:35  profilanswer
 

ben oui !!!
c'est juste que Benji_100 a la facheuse habitude d'en double, voir tripler les balises inutiles
 
edit : tout reflechis, vire l'ancre, et met ceci :  
<a href="#" onclick="voir('monid');return false">truc</a>
 
car si on prends l'exemple que t'a donné benji_100
ca fera ceci au niveau du navigateur :  
 
Voir('monid') : Afficher le block "monId";
href: #ancre  : Aller à la page "page.html#ancre"; donc ca reactualise la page (ce peut dependre du navigateur, mais dans IE c'est comme ca).
 
donc un return false pour eviter que le navigateur rafraichisse la page.


Message édité par gatsusat le 04-10-2005 à 11:23:48
mood
Publicité
Posté le 04-10-2005 à 11:20:35  profilanswer
 

n°1214194
benji_100
Posté le 04-10-2005 à 11:27:33  profilanswer
 

2 remarques :
- merci pour ta remarque getsusat
- tout les elements peuvent accepter des evenements? (head?html?tr?hr?...)
 

n°1214200
gatsusat
Posté le 04-10-2005 à 11:31:52  profilanswer
 

benji_100 a écrit :

- merci pour ta remarque getsusat


Gatsusat, tu veux que je brule ta maison ?
 

benji_100 a écrit :

-  tout les elements peuvent accepter des evenements? (head?html?tr?hr?...)


Ouais tous, mais HTML et HEAD on s'en taponne un peu (surtout Head)

n°1214204
fluminis
Posté le 04-10-2005 à 11:33:31  profilanswer
 

d'apres mes tests, je ne suis pas d'accord avec toi gatsusat, j'ai fait des tests avec IE et avec FireFox, ça ne réactualise pas la page, ça déplace la fenetre pour rendre visible l'anchor donc la solution de benji fonctionne sur les deux navigateurs
 
et deplus j'ai besoin de cette anchor afin de déplacer la fenetre, sinon on revient au point zéro et je cherche toujours la solution en javascript pour s'assurer qu'un element est dans la zone de l'ecran visible ou sinon scroller la fenetre...


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1214208
gatsusat
Posté le 04-10-2005 à 11:38:23  profilanswer
 

ah oui tout a fait exact fluminis,  
alors j'ai du me gourationner sur un point moi.

n°1214211
benji_100
Posté le 04-10-2005 à 11:39:32  profilanswer
 

oué fluminis, il a confondu rendre visible l element et le rendre visible par l utilisateur la maintenant sur la page. Ne tiens pas compte de ce qu il vient de dire (mm erreur que oliv)


Message édité par benji_100 le 04-10-2005 à 11:40:28
n°1214218
fluminis
Posté le 04-10-2005 à 11:46:14  profilanswer
 

hihi, pas de probleme,  
merci a tous,
le problème semble résolu


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1214221
benji_100
Posté le 04-10-2005 à 11:48:15  profilanswer
 

Tu changerai le nom du post en rajoutant [Résolu] à la fin? :)

n°1214226
fluminis
Posté le 04-10-2005 à 11:58:06  profilanswer
 

voila c'est fait :)


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1214237
benji_100
Posté le 04-10-2005 à 12:05:15  profilanswer
 

Merci :)
Maintenant juste une question ouverte :) :
A mon avis il aurait été possible de checker si l'element monID est actuellement bien visible par la fenetre du navgateur en utilisant :
- la position en X et Y de l'élément (element.style.top ... ?)
- la position du cadre de la fenetre (avec les propriétés de scroll)
- la hauteur/largeur actuelle de la fenêtre (element.style.height/width ?)
 
Qu en pensez vous?

n°1214245
fluminis
Posté le 04-10-2005 à 12:09:50  profilanswer
 

ha !
voila a quoi je pensais quand j'ai posé ma question en premier lieu.
je pense qu'une telle solution doit être faisable, mais la solution actuelle est simple et fonctionne (au moins sur IE et Firefox) donc pourquoi se compliquer la vie :)
 
Si vous avez 5 minutes pour réflechir à la question je suis curieux de voir la solution


---------------
http://poemes.iceteapeche.com - http://www.simuland.net

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  S'assurer qu'un element est visible a l'ecran [resolu]

 

Sujets relatifs
types acceptés comme key d'un dict [résolu]Un truc surement simple a faire[Resolu]
[JS] probleme simple de portée de variable[Résolu]Comment mettre image fond écran sous-pages site ?
[résolu] Faire cohabiter une ID et un classe dans la même balise ???appeler méthode de classe-mère [résolu]
(Résolu) - Caractères acceptés dans un champ par MySQL[PDA][WinCE.NET][VB.NET] controler la luminositée de l'ecran
[resolu par hasattr()]comment savoir si une variable existe ?Pb variable d'environnement apres installation JDK - Resolu
Plus de sujets relatifs à : S'assurer qu'un element est visible a l'ecran [resolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR