chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020
-
12 juil. 2006 à 17:02
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020
-
30 oct. 2006 à 21:11
Bonjour,
Je suis en train de créer une webradio :
L'URL temporaire : http://balistiq.free.fr/test2/ruskof.htm Dans le menu de gauche, il y a 3 boutons tests : (presentations, culture et chateauroux).
Quand on place le curseur de la souris sur l'une de ces 3 rubriques, vous remarquerez qu'un sous-menu apparaît en bas de la page ; cependant, en ce qui concerne le sous menu de la rubrique "culture", je souhaite faire apparaître une sous-sous rubriques en haute de la page.
Mon code est partagé entre 2 fichiers dont voici le détail:
var ie = 0;
var ns = 0;
var moz = 0;
var manif = document;
var chateauroux = document;
var culture = document;
var med = document;
var art = document;
var build = document;
var phil = document;
if (document.all) {
ie = 1;
} else if (document.layers) {
ns = 1;
} else if (document.getElementById) {
moz = 1;
}
function init() {
if (ns) {
manif = document.divManif;
chateauroux = document.divChateauroux;
culture = document.divCulture;
function clipValues(obj,which) {
if (ns) {
if (which=="t") return obj.clip.top;
if (which=="r") return obj.clip.right;
if (which=="b") return obj.clip.bottom;
if (which=="l") return obj.clip.left;
} else {
var clipv = obj.clip.split("rect(")[1].split(")")[0].split("px");
if (which=="t") return Number(clipv[0]);
if (which=="r") return Number(clipv[1]);
if (which=="b") return Number(clipv[2]);
if (which=="l") return Number(clipv[3]);
}
}
function laOpen(obj) {
if (obj.over) {
if (clipValues(obj,'t') > 0) {
show(obj);
obj.open = 1;
if (clipValues(obj,'t') > 15) {
clipBy(obj,-15,0,0,0);
moveBy(obj,0,15);
// obj.fullopen = 1;
} else {
var val = clipValues(obj,'t');
clipBy(obj,-val,0,0,0);
moveBy(obj,0,val);
obj.fullopen = 1;
}
this.obj = obj;
setTimeout("laOpen(this.obj)",15);
}
}
}
function laClose(obj) {
if (!obj.over) {
if (clipValues(obj,'t') < obj.imgy) {
if ((clipValues(obj,'b')-clipValues(obj,'t')) > 20) {
clipBy(obj,20,0,0,0);
moveBy(obj,0,-20);
obj.fullopen = 0;
obj.linktimeoutid = 0;
obj.closetimeoutid = 0;
} else {
var val = clipValues(obj,'b')-clipValues(obj,'t');
clipBy(obj,val,0,0,0);
moveBy(obj,0,-val);
}
this.obj = obj;
setTimeout("laClose(this.obj)",15);
} else {
obj.open = 0;
obj.linktimeoutid = 0;
obj.closetimeoutid = 0;
hide(obj);
}
}
}
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// Done
J'ajoute que j'ai utilisé un script tout fait donc, il y a des incohérences notemment dans les mots clés.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 13 juil. 2006 à 12:00
B
onjour
ton DIV Culture s'affiche la ou tu l'as placé, à savoir en LEFT:723 et TOP:726 donc si tu veux le voir apparaître en haut il te suffit modifier ces valeurs
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 13 juil. 2006 à 14:54
C'est pas tout à fait ce que je demandais, mais c'est pas grave, je vais reformuler autrement :
1 - tu passe le curseur de la souris sur le bouton culture
2 - Ca affiche un sous-menu en bas de l'écran
3 - Je souhaiterai savoir comment ajouter un sous-sous menu quans je passe le curseur sur l'une des propositions du sous-menu culture.
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 14 juil. 2006 à 18:30
J'ai essayé ce que tu m'a dis mais je m'en sort pas du tout, par contre, j'ai un autre code à te soumettre qui ne necessite pas de fichier.js et qui est beaucoup plus simple à mettre à jour :
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 17 juil. 2006 à 19:12
J'ai dû merdouiller je ne sais quoi, il est vrai en js, la moindre erreur de syntaxe ne pardonne pas.
Par contre, j'aurai aimé avoir ton avis quant au second scrypt que j'ai indiqué plus haut.
Il a l'avantage d'être plus simple à mettre à jour si je dois modifier les boutons, ce qui de toute façon aura lieu.
Sinon, ton explication est assez claire, j'ai quand même fini par faire quelque chose mais c'est pas une cinécure.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 17 juil. 2006 à 20:11
nous revoila donc revenu au problème avec zone clickable
que ce soit l'un ou l'autre des scripts, le second étant à priori plus light, il te faut bien définir ce que tu veux quitte à faire des schémas, voire des dessins, pour bien comprendre et voir qu'a telle action correspond un résultat...
L'ébauche de celui que tu as fait un peu plus haut bien que simple vaut mieux que bien des discours donc mets sur papier les relations avant de t'attaquer au code...
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 18 juil. 2006 à 19:24
B
onjour
A priori rien de bien sorcier dans ton schéma...
Tu as en fait 3 types d'actions
1. OnMouseOver -> Affiche un Calque
2. OnClick -> Affiche un Calque
3. OnClick -> Charge un fichier
- Livre d'OR est une ACTION 1
- TEST est une ACTION 2
- TOTO est une ACTION 3
La <MAP> relative à l'ACTION 1 doit contenir un OnMouseOver= " Affiche_DIV ('Nom_DIV');"
La <MAP> relative à l'ACTION 2 doit contenir un OnClick ="Affiche_DIV('Nom_DIV');"
La <MAP> relative à l'ACTION 3 doit contenir un OnClick= " Charge_Fichier ('Nom_IFRAME', 'Nom_FICHIER');"
Tu vas me dire MAIS C'EST QUOI CES FONCTIONS ????????
//----------------------------------------------
// Affichage d'un DIV déclaré dans le document...
//----------------------------------------------
function Affiche_DIV( div_){
var Obj = document.getElementById( div_);
if( Obj){
Obj.style.visibility = "hidden";
//-- Ou autre méthode
Obj.style.display = "nonne";
}
}
//----------------------------------------------
// Masquage d'un DIV déclaré dans le document...
//----------------------------------------------
function Cache_DIV( div_){
var Obj = document.getElementById( div_);
if( Obj){
Obj.style.visibility = "visible";
//-- Ou autre méthode
Obj.style.display = "";
}
}
//--------------------------------------
// Changement de la SRC d'une IFRAME...
//--------------------------------------
function Charge_Fichier( where_, url_){
var Obj = document.getElementById( where_);
if( Obj){
Obj.src = url_;
}
}
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 18 juil. 2006 à 21:38
C'est clair mais comme j'y comprends rien à rien au javascript et à n'importe quel langage en général, j'y perds mon latin en 10 secondes.
Je n'arrive pas à appliquer ce que tu dis dans mon code.
D'ailleurs, à bien y regarder mon code, je constate qu'il a des erreurs puisqu'il y a un bout de code en rouge avec dreamweaver. Et rien que ça, je n'arrive pas à comprendre pourquoi, pourtant toutes les balises sont fermées. Enfin bref, c'est la bérésina.
D'ordinaire quand je me lance à faire du code, c'est à partir d'un script tout fai mais là, c'est nouveau pour moi, je sais pas comment interpréter ce que tu dis et par conséquent, je ne sais pas quoi faire.
Je sais même pas comment j'ai réussi à en arriver là, car à l'origine, c'était un sript tout bête d'un système mouseover sur un menu.
Je vais refaire des essais mais je crois que je peux y passer 100 ans, à moins d'un miracle, je ne crois pas en un résultat convenable.
Tu vas dire que je suis d'une bêtise affligente mais je crois qu'un exemple concret à partir de mon code serait l'idéla afin que je comprenne bien.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 18 juil. 2006 à 22:31
Il ne faut jamais désespérer...
ci dessous une page HTML avec les exemples pour t'aider à comprendre...
c'est parti...
-- CUT HERE ----------------------------------
<HTML>
<HEAD>
<TITLE>TEST...............</TITLE>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
//----------------------------------------------
// Affichage d'un DIV déclaré dans le document...
//----------------------------------------------
function Affiche_DIV( div_){
var Obj = document.getElementById( div_);
if( Obj){
Obj.style.visibility = "visible";
//-- Ou autre méthode
Obj.style.display = "";
}
}
//----------------------------------------------
// Masquage d'un DIV déclaré dans le document...
//----------------------------------------------
function Cache_DIV( div_){
var Obj = document.getElementById( div_);
if( Obj){
Obj.style.visibility = "hidden";
//-- Ou autre méthode
Obj.style.display = "none";
}
}
//--------------------------------------
// Changement de la SRC d'une IFRAME...
//--------------------------------------
function Charge_Fichier( where_, url_){
var Obj = document.getElementById( where_);
//-- Pour Test -------------------------------- alert( "IFRAME " +where_ +"\nURL " +url_);
//---------------------------------------------
if( Obj){
Obj.src = url_;
}
}
</SCRIPT>
</HEAD>
[#
]
[#
]
[#
]
[#
]
[#
]
[#
</map>
<map name="M_CULTURE">
]
[#
]
</map>
<map name="M_THEATRE">
[#
]
[#
]
</map>
</HTML>
-- JUSQUE HERE --
Nota : je suis reparti de la base la plus simple...
au passage il y a plusieures con..ies dans les fonctions que j'ai écrite avant...ERREUR de frappe bien Sur !o(, c'est rectifié...
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 18 juil. 2006 à 22:37
Un grand merci à toi, j'essai ça mais là, tu vois, ça me parle déjà davantage, comme tu le dis toi-même : vaut mieux un bon dessin (ou une bonne démo) qu'un long discour.
Je te tiens au courant de la suite des évènements.
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 19 juil. 2006 à 12:56
Une autre question histoire de finioler, est-il possible de faire apparaître plusieurs DIV avec un seul lien ?
[#
Dans l'exemple ci-dessus, on peut visiblement faire apparaître le calque theatre mais si je voulais faire apparaître un calque musique et expos, comment puis-je les ajouter ?
J'ai complètement oublié de précisier ce détail hier.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 19 juil. 2006 à 14:00
B
onjour
Aucun Problème il suffit de modifier les fonctions comme suit...
//----------------------------------------------
// Affichage d'un DIV déclaré dans le document...
//----------------------------------------------
function Affiche_DIV(){
var Arg = arguments; // Récup liste des arguments passée à la fonction
var Obj;
for( var i=0; i< Arg.length; i++){
// On parcours la liste
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 19 juil. 2006 à 18:00
Juste une petite chose encore, j'ai réussi à me déaptouiller avec ton code mais voilà quand je passe le curseur de la souris sur la zone "présentation", il y a bien le menu qui apparaît en bas mais si je vais sur "la culture" par exemple, et bien, le menu de "présentaion" reste et du coup celui de "la culture" se met par dessus.
J'ai bien vu une ligne de code dans laquelle il y a ça :
Logiquement, le onMousOut n'est-il pas censer effacer le menu si le curseur de la souris va hors de la zone ? J'ai sans doute fais une ânerie mais j'avoue ne pas bien comprendre où.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 19 juil. 2006 à 18:17
Tout ce que tu écris est correct...ERREUR de syntaxe peut être...
Dans ton cas je pense que tu devrait oublier le OnMouseOut de tes liens, je m'explique...
comment atteindre un lien que tu viens d'afficher si l'événement déclencheur posséde un OnMouseOut qui l'efface ?
Une solution consiste a créer une une fonction Cache_ALL() que tu appelles en début de fonction
Affiche_DIV()
exemple :
//-------------------
function Cache_ALL(){
Cache_DIV('D_balistiq','D_yeswecancan','D_equipe'...etc..);// tu mets tout les DIVs Temporaires
}
et dans
//-------------------
function Affiche_DIV(){
var Arg = arguments;
var Obj;
Cache_ALL(); // Appel pour tout masquer
...la Suite...
}
chabgyver
Messages postés159Date d'inscriptiondimanche 17 juillet 2011StatutMembreDernière intervention28 janvier 2020 19 juil. 2006 à 20:54
Bon, j'ai essayé et voilà la portion de code que j'ai essayé en fonction de ce que tu a mentionné :
function Cache_ALL(){
Cache_DIV('D_balistiq','D_yeswecancan','D_equipe'...etc..);// tu mets tout les DIVs Temporaires
}
function Affiche_DIV(){
var Arg = arguments; // Récup liste des arguments passée à la fonction
var Obj;
Cache_ALL(); // Appel pour tout masquer
for( var i=0; i< Arg.length; i++){ // On parcours la liste
Obj = document.getElementById( Arg[i]); // Récup Objet correspondant
if( Obj){
Obj.style.visibility = "visible";
//-- Ou autre méthode
Obj.style.display = "";
}
}
}
Ca cache bien les div a tel point qu'ils n'apparaissent carrément plus.