przez Driller » 15 lipca 2004, o 09:53
Witam!
Po raz pierwszy pisze coÅ› na forum, ale mniejsza o to.
Problem polega na tym, iż konstruuje (za pomocą pająka oczywiście) mapę odsyłaczy na grafice. Ponieważ mam kilka obszarów na jednej grafice, chciałbym aby po najechaniu na dany obszar podmieniał się kolor, czy też wygląd tylko danego obszaru a nie całej grafiki.
Wykorzystałem następujacy skrypt:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
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.01
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 && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
a później w sekcji <body>
<map name="szeregowce">
<img name="szeregowce" src="test_black.gif" usemap="#szeregowce" border="0" width="750" height="723" alt="" />
<area shape="poly" coords="205,28,428,110,392,206,156,119,184,42,205,28" onmouseout="MM_swapImgRestore();" onmouseover="MM_swapImage('szeregowce','','test_color.gif',1);" href="#l" target="new window"/>
</map>
No i problem w tym że podmienia się cały obrazek a nie tylko obszar wyznaczony przez coords.
Z góry dziękuje za odpowiedzi,
Pozdrawiam,
Driller