Forum de discussion
Forum « Programmation Javascript » (archives)
Re: menu rollover : lien cliqué reste actif
Envoyé: 30 novembre 2004, 16h36 par bendev
Sur chacun de tes liens, force donc le code généré par un truc du genre :
<a onmousedown="javascript:appel_down(1)" onmouseup="javascript:appel_up(1)" onmouseover="javascript:appel_over(1)" onmouseout="javascript:appel_out(1)" href="javascript:appel_selection(1); ">
donc à 1 pour le 1er lien, tu envoies 2 piour le 2ème et ainsi de suite ...
... et dans le code js, tu peux peut-être faire du ménage aussi et remplacer le code dreamweaver par :
function appel_down(num) {
//======================
appel_reinit()
if (num ==1) {document.images[1].src='../includes/Images/titre_nav2c.jpg';
UI = 'INS';
parent.bas.location.href='../asp/engine_bas.asp?param=aff_inscript'; return true
}
if (num ==2) {document.images[2].src='../includes/Images/titre_nav3c.jpg'
UI = 'ANN';
parent.bas.location.href='../asp/engine_bas.asp?param=aff_annonce';
}
if (num ==3) {document.images[3].src='../includes/Images/titre_nav4c.jpg'
UI = 'LST';
parent.bas.location.href='../asp/engine_bas.asp?param=aff_lstann'; return true
}
if (num ==4) {document.images[4].src='../includes/Images/titre_nav5c.jpg'
UI = 'IDE';
parent.bas.location.href='../asp/engine_bas.asp?param=aff_stats'; return true
}
}
function appel_up(num) {
//====================
appel_reinit()
if (num ==1) {document.images[1].src='../includes/Images/titre_nav2o.jpg'; window.status=' ' ; return true}
if (num ==2) {document.images[2].src='../includes/Images/titre_nav3o.jpg'; window.status=' ' ; return true}
if (num ==3) {document.images[3].src='../includes/Images/titre_nav4o.jpg'; window.status=' ' ; return true}
if (num ==4) {document.images[4].src='../includes/Images/titre_nav5o.jpg'; window.status=' ' ; return true}
}
function appel_over(num) {
//======================
appel_reinit()
if (num ==1 & parent.haut.UI != 'INS') {document.images[1].src='../includes/Images/titre_nav2o.jpg';
return true}
if (num ==2 & parent.haut.UI != 'ANN') {document.images[2].src='../includes/Images/titre_nav3o.jpg';
return true}
if (num ==3 & parent.haut.UI != 'LST') {document.images[3].src='../includes/Images/titre_nav4o.jpg';
return true}
if (num ==4 & parent.haut.UI != 'IDE') {document.images[4].src='../includes/Images/titre_nav5o.jpg';
return true}
}
function appel_out(num) {
//=====================
appel_reinit()
if (num ==1 & parent.haut.UI != 'INS') {document.images[1].src='../includes/Images/titre_nav2.jpg'; window.status=' ' ; return true}
if (num ==2 & parent.haut.UI != 'ANN') {document.images[2].src='../includes/Images/titre_nav3.jpg'; window.status=' ' ; return true}
if (num ==3 & parent.haut.UI != 'LST') {document.images[3].src='../includes/Images/titre_nav4.jpg'; window.status=' ' ; return true}
if (num ==4 & parent.haut.UI != 'IDE') {document.images[4].src='../includes/Images/titre_nav5.jpg'; window.status=' ' ; return true}
}
function appel_selection(num){
//===========================
if (num ==1) {document.images[1].src='../includes/Images/titre_nav2X.gif'};
if (num ==2) {document.images[2].src='../includes/Images/titre_nav3X.gif'};
if (num ==3) {document.images[3].src='../includes/Images/titre_nav4X.gif'};
if (num ==4) {document.images[4].src='../includes/Images/titre_nav5X.gif'};
}
function appel_reinit(){
//===========================
if (parent.haut.UI == 'INS') {
document.images[2].src='../includes/Images/titre_nav3.jpg'
document.images[3].src='../includes/Images/titre_nav4.jpg'
document.images[4].src='../includes/Images/titre_nav5.jpg'}
if (parent.haut.UI == 'ANN') {
document.images[1].src='../includes/Images/titre_nav2.jpg'
document.images[3].src='../includes/Images/titre_nav4.jpg'
document.images[4].src='../includes/Images/titre_nav5.jpg'}
if (parent.haut.UI == 'LST') {
document.images[1].src='../includes/Images/titre_nav2.jpg'
document.images[2].src='../includes/Images/titre_nav3.jpg'
document.images[4].src='../includes/Images/titre_nav5.jpg'}
if (parent.haut.UI == 'IDE') {
document.images[1].src='../includes/Images/titre_nav2.jpg'
document.images[2].src='../includes/Images/titre_nav3.jpg'
document.images[3].src='../includes/Images/titre_nav4.jpg'}
}
Brut de fonderie ! c'est du code que j'ai utilisé et qui marche très bien : tu te retrouves donc obligé de gérer à la main le positionnement et le dépositionnement du roll-over ; tu gères toi même par des images les affichages correspondant aux différents modes.
En fait maintenant je ne me sers plus d'image pour faire ça, mais j'utilise plutôt du css pour faire varier la police utilisée sur le lien, avec le background : ça va plus vite et c'est suffisant pour faire des effets sympas qui t'obligent pas à faire des images, même petites, qui ne seront pas réutilisables ...
J'espère que ça répond à ta question !
@+
Ben
Réponses
|