[Layers] show/hide met vertraging

Pagina: 1
Acties:

  • TheLemon
  • Registratie: Augustus 2001
  • Laatst online: 01-07 13:56

TheLemon

daddy cool, crazy like a fool

Topicstarter
Ik ben een menuutje aan het maken met submenu's dmv verborgen layers. In Dreamweaver zit een standaard java-functie die MM_ShowHideLayers heet en die kan instant layers visible of hidden maken, werkt op zich prima, maar:
Dit wil ik graag met een vertraging laten gebeuren (zowel show als hide) van bijv. 500 miliseconden. Ik heb gegoogled, gesearched, javascript sites afgestruind, de reference van Dreamweaver gezocht, maar kom er niet uit.

Voor een indruk van het effect dat ik wil bereiken, kijk hier, en dan het menu linksboven bij 'Resources', 'support'. (ik doe het natuurlijk niet zo schmoove met die schaduwen).

Verwijderd

setTimeout(MM_ShowHideLayers(), 500);

En die schaduw is gewoon een bordertje

border-color: kleurlinks kleurboven kleurrechts kleuronder;

[ Voor 60% gewijzigd door Verwijderd op 22-04-2003 15:03 ]


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 09:52

Pelle

🚴‍♂️

Fout; er moeten quotes om de functienaam heen.

  • TheLemon
  • Registratie: Augustus 2001
  • Laatst online: 01-07 13:56

TheLemon

daddy cool, crazy like a fool

Topicstarter
Ehm, ik heb de volgende regel:
code:
1
setTimeout("MM_showHideLayers()", 5000);
tussen de <script> tags gezet, na de definitie van de functie MM_showHideLayers, maar er gebeurt niks, hij doet het gewoon nog zonder vertraging. Waar moet ik dit scriptje precies neerzetten?

En over die schaduw: hoe krijgen ze hem half transparant dan?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Misschien is jouw definitie van vertraging iets anders dan de onze :) Wat setTimeout doet is simpelweg de functie 'uitstellen'. Dus hij wordt 5 seconden na de aanroep uitgevoerd.

Misschien bedoel jij meer iets van een fade?

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 10:32

GrimaceODespair

eens een tettenman, altijd ...

TheLemon schreef op 22 April 2003 @ 16:04:
code:
1
setTimeout("MM_showHideLayers()", 5000);
Klopt nog niet: ronde haken moeten weg na showHideLayers.

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Verwijderd schreef op 22 April 2003 @ 15:02:
En die schaduw is gewoon een bordertje
border-color: kleurlinks kleurboven kleurrechts kleuronder;
Nou nee hoor. Zeg maar gerust een tweede layer die, hoe gekker hoe mooier bij Bill, zelfs halftransparant is...
Maar goed, je kan de illusie wekken met een border, urRight!

  • TheLemon
  • Registratie: Augustus 2001
  • Laatst online: 01-07 13:56

TheLemon

daddy cool, crazy like a fool

Topicstarter
Bosmonster, ik bedoel inderdaad gewoon uitstellen, maar helaas, het werkt nog niet na het weghalen van die haken. Ik heb de regel ook geprobeerd bij de aanroep van de functie, dus:
code:
1
<a href="javascript:;" setTimeout("MM_showHideLayers", 5000); onMouseOver="MM_showHideLayers('l1','','show')">
, maar hij verschijnt gewoon instant.
Wat me verder opvalt is dat de functie MM_showHideLayers drie argumenten kan meekrijgen, de middelste wordt niet gebruikt, waar is die voor? (zie code hierboven)

Verwijderd

wat is dit nu? geen html in elk geval
HTML:
1
<a href="#" onMouseOver="setTimeout('MM_showHideLayers(\'1\',\'\',\'show\')',500);">

[ Voor 53% gewijzigd door Verwijderd op 22-04-2003 17:04 ]


  • TheLemon
  • Registratie: Augustus 2001
  • Laatst online: 01-07 13:56

TheLemon

daddy cool, crazy like a fool

Topicstarter
Ok, het werkt eindelijk met bovenstaande code, thanx.
Die backslash voor elke ' , waarvoor is dat precies, om aan te geven dat het parameters zijn die bij de binnenste functie horen en niet die daarbuiten? Ben een behoorlijke script-n00b.
Trouwens, dat "javascript:;" bij de href maakt Dreamweaver er altijd van, maar dat werkt ook gewoon hetzelfde als die #.
Die geile schaduw ga ik misschien later toch maar ff erbij maken, ik ben iig erg blij dat dit nu werkt. Het is namelijk onwerkbaar als die layers te snel weer verdwijnen als je ook maar 1 pixel buiten het gebied komt van het submenu.

Verwijderd

backslashes voor die ' is om ze te escapen, anders denkt de settimeout functie dat de string waarin de functienaam staat is afgelopen en dat moet dus niet, vandaar (eventueel had je ook " kunnen gebruiken, maar dan loopt het fout omdat je die ook al eens gebruikt had)

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Verwijderd schreef op 22 April 2003 @ 17:03:
wat is dit nu? geen html in elk geval
HTML:
1
<a href="#" onMouseOver="setTimeout('MM_showHideLayers(\'1\',\'\',\'show\')',500);">
Macromedia doet dat (href="#") niet zomaar... (maar alleen nog steeds niet goed :( moet namelijk zijn: javascript:void(0);
Want het is handig om ipv
code:
1
<a href="#".....
code:
1
<a href="javascript:void(0);".......
te zetten. Met het # heb je op langere pagina's (lees pagina's die scrollen) het probleem dat de pagina steeds naar #top springt nadat je de href geklikt hebt!.. :X

[ Voor 56% gewijzigd door beetle71 op 22-04-2003 17:56 ]

Pagina: 1