Toon posts:

Java script navigatie met swapimage

Pagina: 1
Acties:

Verwijderd

Topicstarter
Jullie kennen vast wel de functie in dreamweaver waarmee je op een makkelijke manier de plaatjes in je navigatie kan laten wisselen (behaviors->set nav bar image). Nu heb ik daar voor een website gebruik van gemaakt, maar dit gaat niet helemaal goed.

Ik heb in mijn navigatie bij elk menu item 3 plaatjes. Deze moeten zowel bij een onclick als bij een mouseover event alle 3 gewisseld worden. Bij de mouseover is dit geen probleem en werkt het perfect, maar bij het onclick event (waar de nieuwe images moeten blijven staan tot er een ander menu item aangeklikt wordt), wisseld hij alleen het middelste plaatje en werken de advanced opties dus NIET.
(terwijl ik bij de extra opties wel een ander plaatje aangeef bij de optie "if down, to image file").

Nu heb ik zelf al een beetje met de code zitten spelen, maar met mijn beperke kennis m.b.t. java script kom ik er niet uit :'(

Ik hoop dat iemand hier een oplossing heeft. Hieronder zal ik nog even de code plaatsen die dreamweaver geproduceerd heeft:

de functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<script language="JavaScript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) { //v3.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
    img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
    if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
    nbArr[nbArr.length] = img;
    for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = args[i+1];
      nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
    nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
    img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    if ((nbArr = document[grpName]) != null)
    for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = img.MM_dn = args[i+1];
    nbArr[nbArr.length] = img;
  } }
}
//-->
</script>

deel van het menu met de aanroep van de functies:
code:
1
<a href="10000.php" target="cont_mid" onClick="MM_nbGroup('down','group1','nav_img_1000','../media/navigatie/10000_dw.gif',1)" onMouseOut="MM_nbGroup('out')" onMouseOver="MM_nbGroup('over','nav_img_1000','../media/navigatie/10000_ov.gif','../media/navigatie/10000_dw.gif','rondje1','../media/navigatie/rondjeOV_01.gif','../media/navigatie/rondjeOV_01.gif','rondje2','../media/navigatie/rondjeOV_02.gif','../media/navigatie/rondjeOV_02.gif',1)"><img src="../media/navigatie/10000_up.gif" border="0" name="nav_img_1000"></a>

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Juk! je denkt toch niet dat weik al die ranzige mm functies gaan doorlezen / aanpassen he?

Dit kan waarschijnlijk met 10 regels code, als je even de [url="http://gathering.tweakers.net/forum/find"]search[/url] gebruikt met wat creatieve zoekwoorden

Stop uploading passwords to Github!


  • André
  • Registratie: Maart 2002
  • Laatst online: 13:14

André

Analytics dude

Op woensdag 24 juli 2002 11:03 schreef Papa Eend het volgende:
Juk! je denkt toch niet dat weik al die ranzige mm functies gaan doorlezen / aanpassen he?

Dit kan waarschijnlijk met 10 regels code, als je even de [url="http://gathering.tweakers.net/forum/find"]search[/url] gebruikt met wat creatieve zoekwoorden
Helemaal mee eens, hierboven staat de meest brakke js code die je kunt vinden.

Als je op [url="http://www.hotscripts.com"]www.hotscripts.com[/url] kijkt plus de search hier op GoT gebruikt moet je een heel eind kunnen komen. ;)

MIsschien zelf js leren? Daar heb je veel meer aan en bouw je zelf complete 3d menu's in no time... :P

  • RM-rf
  • Registratie: September 2000
  • Nu online

RM-rf

1 2 3 4 5 7 6 8 9

niet te disrespectvol over dreamweaver's functies praten, misschien zijn ze wat obfuscating, maar ik ken ze verder als zeer browser-compatible en stabiel.

natuurlijk kan je zelf gaan rommellen, vaak kost je dat juist meer tijd, en te betwijfelen valt of het dan dusdanig compatible is.
verder is het uitermate leerzaam, DW's js-functies te ontleden
code:
1
2
3
4
5
6
7
8
if ((nbArr = document[grpName]) != null)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = args[i+1];
      nbArr[nbArr.length] = img;
  }

dit is het stukje waar het misgaat, zet daar eens wat alertjes tussen, voornamelijk bij die for-loop, kennelijk breakt die for-loop voortijdig.

wat ook mogelijk is, is dat het down-event nu eenmaal kennelijk enkel op het middelste image optreedt en daarom niet op de andere images van de group wordt uitgevoerd (kijk eens naar die img.MM_up-propertie)
(die group-functies gebruik ik verder zelf niet graag, en ben ik niet zo bekend mee)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen