Script uitklapmenu optimaliseren

Status
Niet open voor verdere reacties.

kumalic

Gebruiker
Lid geworden
9 nov 2007
Berichten
7
Hallo allemaal,

We hebben een javascript uitklapmenu zie http://www.opvakantienaargriekenland.nl/

Wij werken met html en willen ervoor kunnen zorgen dat we 1 van de 8 menus uitgeklapt kunnen laden in een nieuwe pagina.

Bijvoorbeeld: Als men op Kreta=>Over Kreta klikt gaan ze naar een nieuwe pagina allen is op deze pagina de Kreta menu weer gesloten....bij de nieuwe pagina kreta moet de uitklapmenu van Kreta openblijven en de link moet paars worden zodat men ziet dat ze daar zijn geweest...Kan iemand ons hiermee helpen??
http://www.opvakantienaargriekenland.nl/
 
Je zou menu(0); kunnen toevoegen bij de init() functie:
PHP:
   for(i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }
   menu(0);
}
De middelste zin.

Dat geld dan voor de kreta-pagina's, bij kos wordt het menu(1) enz.. :)


Vr.Gr. Egel.
 
Als ik het aanpas zou als jij het beschrijft krijg ik een foutmelding op de website:

out of memory at line:46

dit gebeurt als je op Kreta klikt de eerste keer...na ok klikken blijft kreta nog steeds dicht terwijl ik MENU(0) heb toegevoegd aan de HOME pagina onder Kreta?

Als je ons kan helpen graag...we zijn al 3 uur op internet aan het zoeken naar oplossing voor ons probleem en volgens mij ben jij de enige die ons probleem snapt. Alleen we krijgen een foutmelding.

ff vooor de duidelijkheid we moeten zelf de conrtole kunnen hebben over de script i.v.m. het dichtblijven of openstaan van een menu. Bijv. bij KRETA!

alvast bedank
 
Laatst bewerkt:
Het idee van het script is goed, een opengeklapt menu dat alleen dichtklapt als de browser het aankan. :) Alleen werkt het met position absolute, coöordinaten en visibility terwijl het veel eenvoudiger kan met enkel style.display = 'none' of 'block'.

Dit werkt eenvoudiger en doet het in IE, Firefox en Opera:
PHP:
<style type="text/css">
 <!--
  DIV.clTop{ width:200;}
  BODY { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 2pt; color: rgb(0,0,0);}
  DIV.clSub { margin-left: 11px; width:200;}
  #divCont{ position:relative; left:0; top:0; height:400; width:170;}
  A.clMain{ font:13px Verdana; text-decoration:none; color: #000000;}
  a:hover { color: #FF9900; cursor:pointer;}
  #divMain{ position:absolute;}
 -->
</style>

<script type="text/javascript">

// Gebruik margin-left in de style DIV.clSub om het submenu uit te lijnen :)
// Verander de tekst kleuren en maten in de A.clMain en A.clSubb in de stylesheet.

// Verander stayFolded naar true als je wilt dat alle subs blijven staan als je een ander aanklikt.
var stayFolded = false;

// De mappen van de submenus, dit bepaalt het aantal en welke aan het begin openklapt :)
var submenus = new Array('kreta','kos','corfu','lesbos','rhodos','peloponnesos','cycladen_eilanden','vaste_land_en_evia');


// vanaf hier niets veranderen ;)

var browser = (document.getElementById ? true : false);

function makeMenu(obj) {
 this.css = document.getElementById(obj).style;
 this.hideIt = b_hideIt;
 this.showIt = b_showIt;
 this.hidden = b_hidden;
 return this;
 };

function b_showIt() {this.css.display = 'block';};
function b_hideIt() {this.css.display = 'none';};
function b_hidden() { return (this.css.display == 'none');};

var oSub = new Array();
function init() {
 var lh = location.href;
 for (i = 0; i < submenus.length; i++) {
  oSub[i] = new makeMenu('divSub' + (i + 1));
  lh.indexOf(submenus[i]) > 0 ? oSub[i].showIt() : oSub[i].hideIt();
  };
 };

function menu(num) {
 if(browser) {
  if(!stayFolded) for(i = 0; i < oSub.length; i++) if(i != num) oSub[i].hideIt();
  oSub[num].hidden() ? oSub[num].showIt() : oSub[num].hideIt();
  };
 };

// Laat het menu laden als de browser document.GetElementById kent.
if (browser) window.onload = init;

</script>
Zie bijlage. :cool: ;) (De bijlage is wel zonder het google script.)

Het enigste dat je hoeft op te geven zijn de mapnamen van de submenus (voor alle pagina's hetzelfde), het goede menu blijft vanzelf openstaan. :)
ff vooor de duidelijkheid we moeten zelf de conrtole kunnen hebben over de script i.v.m. het dichtblijven of openstaan van een menu. Bijv. bij KRETA!
Bedoel je dat het actuele (start) menu dan helemaal niet meer ingeklapt kan worden? Dat is te doen. :)


Vr.Gr. Egel.
 

Bijlagen

  • over_kreta.html.txt
    19,5 KB · Weergaven: 34
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan