(D)HTML + layers + netscape

HTML + layers + netscape (D) - Programmation

Marsh Posté le 28-02-2002 à 11:43:47    

bonjour :  
qq petites quesions :  
 
- comment gérer le scroll dans un layer compatible netscape en cas de débordement (taille du layer spécifique et contenu plus large)
 
- comment fixer un layer dans une cellule d'un tableau? (IE & netscape)
 
- comment récupérer la valeur des coordonnées de la barre de scroll à un emplacement donné?
 
 
 :jap:

Reply

Marsh Posté le 28-02-2002 à 11:43:47   

Reply

Marsh Posté le 01-03-2002 à 10:41:07    

s'il vous plait?

Reply

Marsh Posté le 01-03-2002 à 11:05:15    

:bounce:

Reply

Marsh Posté le 01-03-2002 à 11:08:59    

En javascript ma crapouille, mais ca fait une paye que j'en ai pu fait et la je ne connait pu du tout les nom des objets concerné :(


---------------
J'y étais (à la plus longue CG, et viva CyberTool)©F_P
Reply

Marsh Posté le 01-03-2002 à 11:11:04    

1) pas compris. par ex afficher une scrollbar dans un div ?
 
2) pas compris non plus. mettre un layer en position absolue ?
 
3) sous ie, document.body.scrollTop

Reply

Marsh Posté le 01-03-2002 à 11:12:28    

French_Phoenix a écrit a écrit :

En javascript ma crapouille, mais ca fait une paye que j'en ai pu fait et la je ne connait pu du tout les nom des objets concerné :(  




 
oui je sais qu'il faut du script mais c'est ce qui me manque!

Reply

Marsh Posté le 01-03-2002 à 11:14:08    

youdontcare a écrit a écrit :

1) pas compris. par ex afficher une scrollbar dans un div ?
 
2) pas compris non plus. mettre un layer en position absolue ?
 
3) sous ie, document.body.scrollTop  




 
1/ non dans un layer
2/ non fixer un layer dans une cellule d'un tableau  
j'ai une cellule, dedans je mets un layer, je veux que le layer fasse la taille de la cellule et qu'il soit toujours dans la cellule, sans débordement ou quoi que ce soit.
3/

Citation :

Sujet : (D)HTML + layers + netscape

Reply

Marsh Posté le 01-03-2002 à 11:53:18    

:bounce:

Reply

Marsh Posté le 01-03-2002 à 12:06:52    

Bon je n'ai pas envi de chercher à ta place mais je sais que y'a quelques temps (2 ans disons) j'avais étudié le code que Dreamweaver faisait pour les Layers et c'est comme ça que j'ai appris. Donc si personne te répond tu vois avec DW.

Reply

Marsh Posté le 01-03-2002 à 12:14:36    

c'est agréable ça!
 
dreamweaver ne gère pas ces évènements pour netscape!

Reply

Marsh Posté le 01-03-2002 à 12:14:36   

Reply

Marsh Posté le 01-03-2002 à 13:56:46    

:bounce:

Reply

Marsh Posté le 11-03-2002 à 20:40:47    

tjrs personne :/

Reply

Marsh Posté le 11-03-2002 à 20:50:31    

1\ Pour foutre une scroll bar dans un layer ... bah tu peux toujours rever. Sinon tu peux toujours des IFRAME mais je crois que ca marche pas avec netscape ...  :sweat:  
 
2\ Tu fais chier ... OoOps ma langue a fourchée (je déconne bien sûr  :ange: ) réflechissons un peu .... Si la taille de la cellule est dynamique ca va etre chaud. Mais si elle est fixe, ben c tout con : il suffit de mettre la meme taille pour le layer et la cellule. Sinon essaye de mettre 100% pour la taille de ton layer, je sais pas si ca marche et pis ca me fait chier d essayer !
 
3\ Arrete de prendre la tete avec netscape  :D  
 
Walla :hello:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 11-03-2002 à 20:55:39    

:D  
 
en fait que j'explique un peu ma position avec netscape ;) c'est pour un site qui sera vu à 99% par des navigateurs tournant sur linux, donc majoritairement du netscape.
 
Pour les scrollbars dans les frame avec netscape j'avais vu le concept du javascript : http://developer.netscape.com/docs [...] crollable/
 

Citation :

<script language=Javascript1.2 src=scrollable.js></script>
<layer src="http://home.netscape.com/"  
       clip=300,200 top=50 left=100  
       name=homepage ></layer>  
<script language=javascript1.2 >  
  c= new Scrollable(document.homepage);  
</script>


 
mais que je n'arrive pas à faire fonctionner :/
 
Ensuite mes cellules de tableaux sont fixe, ce qui réduit les emmerdes, mais le problème est que j'ai tjrs un positionnement relatif ou un peu foireux qui fait que le layer bouge en fonction de la résolution d'écran par ex, ou du redimmensionnement de la page...
 
voila!
 
 :hello:  
 
mais merci pour ton brin de réponse ;)

Reply

Marsh Posté le 11-03-2002 à 21:07:21    

testé sous netscape 6 :  
 
>> comment gérer le scroll dans un layer compatible netscape en cas de débordement (taille du layer spécifique et contenu plus large)  
 
<div style='width: 200px; height: 300px; overflow: scroll;'>
  ton texte ...
</div>
 
>> comment fixer un layer dans une cellule d'un tableau? (IE & netscape)  
 
cf ta réponse plus haut, ça peut se faire en javascript, en fixant la taille de l'élément à celle de la cellule (cellule.offsetWidth, cellule.offsetHeight)
 
>> comment récupérer la valeur des coordonnées de la barre de scroll à un emplacement donné?  
 
window.pageXOffset, window.pageYOffset
 
//
 
si ça doit être compatible < netscape 6, aucune idée.

Reply

Marsh Posté le 11-03-2002 à 21:11:21    

youdontcare->merci!!! :jap:  
 
bon pour le div c'est nikel pour IE, en fait j'avais déjà, mais ça ne marche pas avec les versions antérieurs de netscape parce qu'elles ne gèrent que les layers, et pas les div :/
 
mais merci bcp pour le reste.

Reply

Marsh Posté le 12-03-2002 à 10:47:14    

Zavé pas un site ou je peux voir ca ???? (les scrols)
 
 :jap:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 12-03-2002 à 11:13:50    

:??: tu copies colles le code du <div>, tu le remplis de texte, et hop :)

Reply

Marsh Posté le 12-03-2002 à 11:36:55    

Bon voila un code javacript (pas trop trié, desole là j'ai pas le tps) qui permet de mettre un div sur une ancre (anchor). En fait, il faut mettre une balise <a> dans ta cellule de tableau, et ton div ira se mettre dessus :

Code :
  1. //Fonction permettant de positionner un DIV à une position occupée par une ancre
  2. function setToAnchor(ID_Anchor,Name_Anchor,ID_Div)
  3. {
  4. var DivLeft = 0;   //Position du Div par rapport au côté gauche de la page  
  5. var DivTop = 0;   //Position du Div par rapport au haut de la page  
  6.     if (dom)
  7.     {
  8.         pos = document.getElementById(ID_Anchor);
  9.         DivLeft = getLeft(pos);
  10.         DivTop = getTop(pos);
  11.         document.getElementById(ID_Div).style.left = DivLeft;
  12.         document.getElementById(ID_Div).style.top = DivTop;
  13.     }
  14.     else if (ie4)
  15.     {
  16.         pos = document.all[ID_Anchor];
  17.         DivLeft = getLeft(pos);
  18.         DivTop = getTop(pos);
  19.         document.all[ID_Div].style.posLeft = DivLeft;
  20.         document.all[ID_Div].style.posTop = DivTop;
  21.     }
  22.     else if (ns4)
  23.     {
  24.         pos = document.anchors[Name_Anchor];
  25.         DivLeft = pos.x;
  26.         DivTop = pos.y;
  27.         document.layers[ID_Div].pageX = DivLeft;
  28.         document.layers[ID_Div].pageY = DivTop;
  29.     }
  30. }
  31. //Fonction permettant de connaître la position d'un objet
  32. //par rapport au bord gauche de la page.
  33. //Cet objet peut être à l'intérieur d'un autre objet.
  34. function getLeft(MyObject)
  35. {
  36.     if (MyObject.offsetParent)
  37.         return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
  38.     else
  39.         return (MyObject.offsetLeft);
  40. }
  41. //Fonction permettant de connaître la position d'un objet
  42. //par rapport au bord haut de la page.
  43. //Cet objet peut être à l'intérieur d'un autre objet.
  44. function getTop(MyObject)
  45. {
  46.     if (MyObject.offsetParent)
  47.         return (MyObject.offsetTop + getTop(MyObject.offsetParent));
  48.     else
  49.         return (MyObject.offsetTop);
  50. }
  51. //ancre les divs à la meme position que l'ancre <a></a>
  52. function ancre()
  53. {
  54.     setToAnchor('ancre','ancrage�
  55. 39;,'perso');
  56. setToAnchor('ancre','ancrage&#
  57. 039;,'education');
  58. setToAnchor('ancre','ancrage&#
  59. 039;,'projects');
  60. setToAnchor('ancre','ancrage&#
  61. 039;,'publications');
  62. setToAnchor('ancre','ancrage&#
  63. 039;,'experience');
  64. }


 
et si j'ai bon souvenir, je l'avais trouvé sur www.toutjavascript.com
 
En tout cas, bonne chance dans ta lutte avec netscape !  :hello:

Reply

Marsh Posté le 12-03-2002 à 11:44:19    

petoulachi a écrit a écrit :

Bon voila un code javacript (pas trop trié, desole là j'ai pas le tps) qui permet de mettre un div sur une ancre (anchor). En fait, il faut mettre une balise <a> dans ta cellule de tableau, et ton div ira se mettre dessus :

Code :
  1. //Fonction permettant de positionner un DIV à une position occupée par une ancre
  2. function setToAnchor(ID_Anchor,Name_Anchor,ID_Div)
  3. {
  4. var DivLeft = 0;   //Position du Div par rapport au côté gauche de la page  
  5. var DivTop = 0;   //Position du Div par rapport au haut de la page  
  6.     if (dom)
  7.     {
  8.         pos = document.getElementById(ID_Anchor);
  9.         DivLeft = getLeft(pos);
  10.         DivTop = getTop(pos);
  11.         document.getElementById(ID_Div).style.left = DivLeft;
  12.         document.getElementById(ID_Div).style.top = DivTop;
  13.     }
  14.     else if (ie4)
  15.     {
  16.         pos = document.all[ID_Anchor];
  17.         DivLeft = getLeft(pos);
  18.         DivTop = getTop(pos);
  19.         document.all[ID_Div].style.posLeft = DivLeft;
  20.         document.all[ID_Div].style.posTop = DivTop;
  21.     }
  22.     else if (ns4)
  23.     {
  24.         pos = document.anchors[Name_Anchor];
  25.         DivLeft = pos.x;
  26.         DivTop = pos.y;
  27.         document.layers[ID_Div].pageX = DivLeft;
  28.         document.layers[ID_Div].pageY = DivTop;
  29.     }
  30. }
  31. //Fonction permettant de connaître la position d'un objet
  32. //par rapport au bord gauche de la page.
  33. //Cet objet peut être à l'intérieur d'un autre objet.
  34. function getLeft(MyObject)
  35. {
  36.     if (MyObject.offsetParent)
  37.         return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
  38.     else
  39.         return (MyObject.offsetLeft);
  40. }
  41. //Fonction permettant de connaître la position d'un objet
  42. //par rapport au bord haut de la page.
  43. //Cet objet peut être à l'intérieur d'un autre objet.
  44. function getTop(MyObject)
  45. {
  46.     if (MyObject.offsetParent)
  47.         return (MyObject.offsetTop + getTop(MyObject.offsetParent));
  48.     else
  49.         return (MyObject.offsetTop);
  50. }
  51. //ancre les divs à la meme position que l'ancre <a></a>
  52. function ancre()
  53. {
  54.     setToAnchor('ancre','ancrage�
  55. 39;,'perso');
  56. setToAnchor('ancre','ancrage&#
  57. 039;,'education');
  58. setToAnchor('ancre','ancrage&#
  59. 039;,'projects');
  60. setToAnchor('ancre','ancrage&#
  61. 039;,'publications');
  62. setToAnchor('ancre','ancrage&#
  63. 039;,'experience');
  64. }


 
et si j'ai bon souvenir, je l'avais trouvé sur www.toutjavascript.com
 
En tout cas, bonne chance dans ta lutte avec netscape !  :hello:  




 
 
excellent!
 
merci bcp c'est très cool!

Reply

Marsh Posté le 12-03-2002 à 14:45:31    

krapaud a écrit a écrit :

 
 
 
excellent!
 
merci bcp c'est très cool!  




 :jap:

Reply

Marsh Posté le 12-03-2002 à 14:47:51    

bon il ne me reste plus qu'à mettre tout ça en place!
 
je vais essayer de faire un script de detection du brwoser et de gestion des balises <div> ou <layer> en fonction, et d'y appliquer les javascript sus-mentionnés.
 
si vous avez des astuces... :)
 
 :jap:  :jap:  :jap:  :jap:  :jap:

Reply

Marsh Posté le 12-03-2002 à 14:53:25    

Bonjour monsieur krapaud. :hello:

Reply

Marsh Posté le 12-03-2002 à 14:54:39    

:hello: hello!
 
ça faisait drôlement longtemps!

Reply

Marsh Posté le 12-03-2002 à 15:02:49    

krapaud a écrit a écrit :

bon il ne me reste plus qu'à mettre tout ça en place!
 
je vais essayer de faire un script de detection du brwoser et de gestion des balises <div> ou <layer> en fonction, et d'y appliquer les javascript sus-mentionnés.
 
si vous avez des astuces... :)
 
 :jap:  :jap:  :jap:  :jap:  :jap:  




pour faire en fonction du browser :

Code :
  1. var ns4 = (document.layers)? true:false;         //NS 4
  2. var ie4 = (document.all)? true:false;         //IE 4
  3. var dom = (document.getElementById)? true:false;   //NS 6 ou IE 5


et je m'en sert dans les scripts que je t'ai filé plus haut. He oui, ce que je t'ai passé marche pour IE4, IE5 ou + et NS6, et NS4.5 !

Reply

Marsh Posté le 12-03-2002 à 15:05:11    

et je rajoute le bout de code manquant :

Code :
  1. <a name="ancrage" id="ancre">
  2. <div id="perso" style="visibility:hidden;position:absolute></div></a>


 
voila, en mettant cette ancre dans ta cellule, ça doit marcher ! (il faut faire gaffe a l'id que tu te serts, ici c'etait "ancre" pour l'anchor, et "perso" pour la balise div.

Reply

Marsh Posté le 12-03-2002 à 15:07:24    

excellent!
 
par contre j'ai une erreur quand je spécifie une balise comme une variable.
 
si par exemple je dis :  
if var=ns4
calque=layer;
et que j'ai plus loin une balise je ne sais comment lui dire que la balise aura pour attribut ce que j'ai passé en variable un peu plus haut dans mon script.

Reply

Marsh Posté le 12-03-2002 à 15:08:07    

petoulachi a écrit a écrit :

et je rajoute le bout de code manquant :

Code :
  1. <a name="ancrage" id="ancre">
  2. <div id="perso" style="visibility:hidden;position:absolute></div></a>


 
voila, en mettant cette ancre dans ta cellule, ça doit marcher ! (il faut faire gaffe a l'id que tu te serts, ici c'etait "ancre" pour l'anchor, et "perso" pour la balise div.  




 
oui ça c'est nikel en effet!
 
Merci bcp :) :jap:  :jap:

Reply

Marsh Posté le 12-03-2002 à 15:14:49    

krapaud a écrit a écrit :

excellent!
 
par contre j'ai une erreur quand je spécifie une balise comme une variable.
 
si par exemple je dis :  
if var=ns4
calque=layer;
et que j'ai plus loin une balise je ne sais comment lui dire que la balise aura pour attribut ce que j'ai passé en variable un peu plus haut dans mon script.  




je pige pas ?

Reply

Marsh Posté le 12-03-2002 à 15:18:23    

bah en fait je veux que dans le cas ou c'est IE comme navigateur j'ai cette balise qui soit affichée :  
 
<div id="perso" style="visibility:hidden;position:absolute></div>
 
mais que dans le cas ou c'est netscape j'ai ça :  
 
<layer name="perso" style="visibility:hide;position:absolute></layer>
 
 
ce qui implique donc que ces éléments soient des variables définies lors de la detection du navigateur.

Reply

Marsh Posté le 12-03-2002 à 15:32:22    

krapaud a écrit a écrit :

:hello: hello!
 
ça faisait drôlement longtemps!  




 
Tu l'as dit ! Faut dire je traine tout le temps du côté de chez gilou. Ma grande passion c'est Java. Désolé de ne pouvoir t'aider. :sweat:

Reply

Marsh Posté le 12-03-2002 à 15:38:03    

krapaud a écrit a écrit :

bah en fait je veux que dans le cas ou c'est IE comme navigateur j'ai cette balise qui soit affichée :  
 
<div id="perso" style="visibility:hidden;position:absolute></div>
 
mais que dans le cas ou c'est netscape j'ai ça :  
 
<layer name="perso" style="visibility:hide;position:absolute></layer>
 
 
ce qui implique donc que ces éléments soient des variables définies lors de la detection du navigateur.  




ok. Bin logiquement, ce que je t'ai donné plus haut permet de faire des actions differentes suivant les navigateurs.. Une petite precision s'impose qd meme ; il est obligatoire de respecter l'ordre des conditions:

Code :
  1. if (dom)
  2.    {
  3.    }
  4.    else if (ie4) 
  5.    {
  6.    }
  7.    else if (ns4)
  8.    {
  9.    }


Car : dom correspond a IE5 (ou +) et NS 6 (ou plus).  
mais IE correspond a IE4 (ou -) ET IE5 (ou +)
et il en est de meme pour ns4 avec NS6.
 
Donc il faut bien faire des else if, sinon il arrive que ça aille dans deux conditions...

Reply

Marsh Posté le 12-03-2002 à 15:41:49    

Cherrytree a écrit a écrit :

 
 
Tu l'as dit ! Faut dire je traine tout le temps du côté de chez gilou. Ma grande passion c'est Java. Désolé de ne pouvoir t'aider. :sweat:  




 
pas grave ;)
 
 :jap:

Reply

Marsh Posté le 12-03-2002 à 15:46:55    

petoulachi a écrit a écrit :

 
ok. Bin logiquement, ce que je t'ai donné plus haut permet de faire des actions differentes suivant les navigateurs.. Une petite precision s'impose qd meme ; il est obligatoire de respecter l'ordre des conditions:

Code :
  1. if (dom)
  2.    {
  3.    }
  4.    else if (ie4) 
  5.    {
  6.    }
  7.    else if (ns4)
  8.    {
  9.    }


Car : dom correspond a IE5 (ou +) et NS 6 (ou plus).  
mais IE correspond a IE4 (ou -) ET IE5 (ou +)
et il en est de meme pour ns4 avec NS6.
 
Donc il faut bien faire des else if, sinon il arrive que ça aille dans deux conditions...  




 
oui ça j'ai bien compris le principe, mais mon problème est pour la phase suivante :  
 
en fait ce que je veux savoir c'est comment définir après la detection du navigateur, les attributs qui setont utilisés pour l'affichage de la page :  
ainsi on utilisera div pour IE et layer pour Netscape...
 
faut bien que je spécifie ça qqpart et c'est là mon problème : si je crées une balise <variable1 visibility:'attribut1' attribut2:'calque' ...>
 
et que plus tot dans la page j'ai défini :  
 
if (dom)  
  {  
variable1 = div
...
  }  
  else if (ie4)    
  {  
variable1 = div
...
  }  
  else if (ns4)  
  {  
variable1 = layer
...
  }
 
 
 
alors j'ai une erreur d'execution...

 

[jfdsdjhfuetppo]--Message édité par krapaud--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 12-03-2002 à 16:23:07    

ha ? quelle erreur ?
donne aussi ton code en complet, js deconne souvent avec les chaines de caracteres et les ' et les " .

Reply

Marsh Posté le 12-03-2002 à 16:40:39    

non ça y est c'est bon, j'avais effectivement foiré mes chaines, il me manquait des ';'!
 
Merci bcp :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed