ONGLETS

cs_quicest Messages postés 32 Date d'inscription samedi 16 juillet 2005 Statut Membre Dernière intervention 17 avril 2013 - 19 août 2005 à 07:15
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 19 sept. 2006 à 18:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33306-onglets

younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
19 sept. 2006 à 18:33
Bonjour,
Je travail sur un projet,oû je dois mettre des onglets automatique, ou des images deplaçables => vous m avez pa compris!! ??.
Alors j explique :
L'utilisateur lui meme peut créer ces onglet personnel et deplacer les images ds le site. vous pouvez m aider et m envoyer au moins un script de ça, soit pour les onglets soit pour le drag and drop
Pour bien me comprendre, je vous demande d aller voir ce site : www.netvibes.com ou www.google.com/ig
Si vous pouvez m'aider a trouver le script ou on le developpe ensemble ça serait gentil de votre part . Merci
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 juin 2006 à 01:29
quand on fait du document.write, c'est impossible d'ajouter un onglet en cours d'utilisation...
xriou Messages postés 8 Date d'inscription lundi 1 mai 2006 Statut Membre Dernière intervention 1 juillet 2006
28 juin 2006 à 01:00
Bonjour,

Bonjour comment ajouter un onglet et qu'il s'affiche ?

Aujourd'hui quand j'invoque ajouter_onglet je vois apparaître mon onglet rapidement puis je reviens sur ma page

exemple : <script type="text/javascript">
function ajouter(){
a=new Onglet_box();
a.ajouter_onglet('ONGLET A');
a.onglets[0].add_link('X4','index.php');
a.afficher();
ouvre(0);
}
</script>
[# MON LIEN]


Certains me diront pourquoi révinventer la router avec cette fonction qui sert à rien. C'est juste pour mes tests. C'est aussi parceque je n'ai pas réussi à ajouter correctement un onglet en cliquant sur un lien a href.
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 août 2005 à 08:56
J'ai fait le bout de CSS vite fait sans vraiment chercher à le rendre joli ... :)

Si tu veux le meme comportement sous IE et FF :

* {margin:0; padding:0; border:0; list-style-type:none;}
dl#menu {list-style-type:none;position:relative;width:100%}
dl#menu dt { float:left; width:200px;}
dl#menu dd { display:none;position:absolute;left:0;top:2em;}
dl#menu dd ul {list-style-type:none;}
dl#menu dd ul li { float:left; width:150px;}

Cyril
cs_meh Messages postés 66 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 9 juillet 2007
22 août 2005 à 02:54
Salut JESUSONLINE, en effet moi je préfère aussi les css et la simplicité+accessibilité. Ton script ne déconne t'il pas un peu sur MIE, où les sous-menus sont décalés à droite (parfait par contre sur Moz/FF)
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 août 2005 à 12:41
Parce que mon code est plus compliqué que le tient ?

et tu crois vraiment que les sitesmaps de google suffisent ? un lien ne remplacera pas un lien ! et puis pour les aveugles :) eux aussi doivent aller lire dans le sitemap pour naviguer sur ton site ;)

et enfin j'ai oublié de citer un autre avantage de mon code, j'utilise CSS, donc ce sera beaucoup plus facile de changer l'allure de menu que ton bout de javascript :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
20 août 2005 à 12:34
le but était la simplicitée, pas l'accès ou non de google aux pages...

google a ses sitesmaps pour ça...
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
20 août 2005 à 12:28
Il existe beaucoup plus simple pour faire quelque chose de ce genre ...

pourquoi ne pas utiliser html :) ainsi google pourra lui aussi naviguer dans le menu.

Voila quelque chose de rapidement fait

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Menu sous forme d'onglets</title>
<style type="text/css">
* {margin:0; padding:0; border:0; list-style-type:none;}
dl#menu {list-style-type:none;}
dl#menu dt { float:left; width:200px;}
dl#menu dd { display:none; position:relative;}
dl#menu dd ul {list-style-type:none; position:absolute; top:2em;}
dl#menu dd ul li { float:left; width:150px;}
</style>
<script type="text/javascript">
window.onload = function(e)
{
loadMenu();
}

function loadMenu()
{
var elmtMenu = document.getElementById('menu');
var elmtTitre = elmtMenu.getElementsByTagName('dt');

for ( i = 0; i < elmtTitre.length; i++ )
{
elmtTitre[i].onclick = function(e)
{
var elmtSousMenu = document.getElementById('menu').getElementsByTagName('dd');
for ( j = 0; j < elmtSousMenu.length; j++ )
{
elmtSousMenu[j].style.display = 'none';
}
var node = this.nextSibling;
while (node.nodeType != 1)
node = node.nextSibling;
node.style.display = 'block';
}
}

}
</script>
</head>

* Titre I :

<li>I.1</li>
<li>I.2</li>
<li>I.3</li>
<li>I.4</li>

* Titre II :

<li>II.1</li>
<li>II.2</li>
<li>II.3</li>
<li>II.4</li>

* Titre III :

<li>III.1</li>
<li>III.2</li>
<li>III.3</li>
<li>III.4</li>



</html>

(j'espere que la présentation sera correcte)

Les avantages, beaucoup plus leger que ce que tu as fait ! google pourra lui aussi aller voir le menu !!! beaucoup plus simple que toi pour gerer le menu etc ...

:)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 août 2005 à 12:24
oulala, exact, j'ai eu comme qui dirait une grosse erreur d'inatention, je corgerais ça dans quelques jours...
ze_fred Messages postés 15 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 14 septembre 2007
19 août 2005 à 12:17
mais parceque ca veut rien dire...
ca va ecrire
[liens_x </this.nombre;i++){>text_x]/
tu voudrais pas plutot que ca ecrive
[liens_x text_x] ?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 août 2005 à 12:11
pourquoi ???
ze_fred Messages postés 15 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 14 septembre 2007
19 août 2005 à 12:09
il n'y a pas de boucles infinies, juste un soucis la :
for (i=0;i<this.nombre;i++){
/*
en ajoutant un target="leftframe" par exemple, on peut facilement choisir la destination du lien.
*/
document.write('['+this.liens[i]+' </this.nombre;i++){>'+this.texte[i]+'] / ');
--------------------------------------------- là
}
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 août 2005 à 12:00
je ne vois pas ou j'ai une boucle infinie...
pour les pointeurs de fonction, c'est vrai que ça simplifierais les choses.

un table pour un onglet, moi je trouves ça plutot pas mal... un div aurait du avoir un display aproprié, pour la border, ça n'aurait pas été facile...

enfin voila, le div ne me plaisait pas...

innerHTML est efficace, j'y ai également pensé, mais il aurait fallu un div pour l'accrocher à la page, et je ne voulais pas forcer le webmaster a mettre du code html suplémentaire pour avoir ce menu.

si je ne propose pas d'exemples en ligne, c'est que je n'ai pas décidé d'utiliser ce menu sur mon site...


pour le niveau expert, je l'ai mis en référence à
http://www.javascriptfr.com/code.aspx?ID=32134 qui n'a qu'un objet, et qui n'est pas compatible firefox...
http://www.javascriptfr.com/code.aspx?ID=31293
celui ci qui peut simplement être remplacé par du css...

et nombre de menus médiocres, sans vrai avancée coté programmation...

le mien n'est pas super joli, mais coté prog, il les dépasse largement...
ze_fred Messages postés 15 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 14 septembre 2007
19 août 2005 à 10:02
je n'ai pas lancé ton code. Je l'ai juste lu ainsi que tes commentaires:
- Ton code ne marche pas (en tout cas en l'état) : " 11111111111" ou le copier/coller de la reste de la boucle fort dans ta fonction init_objet
- Il y a du code mort ("a=document.getElementById('div'+id); ", this.nombre ne sert a rien...)

Ensuite juste sur la forme:
- document.write est à éviter, je pense qu'il est preferable de passer par innerHTML
- pour les functions de ton objet, le code est plus lisible et les portées de fonctions plus explicites si tu fais
this.add_link= function (texte, lien){ .... } plutôt que d'affecter le pointeur sur ta fonction comme tu le fais.
- les tables ne sont pas faites pour ça, tout en div s'aurait été mieux.

Pour conclure, code sympa, mais certainement pas niveau expert.
Amicalement,
Fred
cs_JPR Messages postés 37 Date d'inscription mercredi 3 juillet 2002 Statut Membre Dernière intervention 7 juin 2008
19 août 2005 à 07:33
Bonjour,

Pourquoi ne pas une URL pour voir et donner un aperçu de ton menu...
Ca serait tellement plus simple pour les visiteurs.
Merci si tu nous fais çà
Bonne journée
JPR
cs_quicest Messages postés 32 Date d'inscription samedi 16 juillet 2005 Statut Membre Dernière intervention 17 avril 2013
19 août 2005 à 07:15
° Niveau de la source : Expert
° ...rares sont ceux...
° que je trouves plutot réussie comparée
aux autres menus
...etc...etc... quelle modestie !
Rejoignez-nous