Undskyld, men jeg er nødt til at sove lidt bedre - så her er en object fidus ...
... det problem jeg oplevede var at den blev helt upræcis efter lidt resizing ... det bør denne rette op på , alle beskrivelserne kan fjernes ... men jeg regnede med at det var rart nok at vide hvad den gjorde :o)
... YES, så er jeg til køjs :D
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
<script type="text/javascript">
var elimg; // Variabel der forbinder til elimg
var elwcalc; // Variabel der holder værdien om det skal baseres på width eller height
var elprev; // Variabel til holdning af oprindelig coords width / height basering
var elcoord={}; // Object til at holde links til alle area's og deres oprindelige coords
window.onload=function(){
if(document.getElementById("elmap")){ // hvis der ikke er et elmap på siden skal scriptet ikke køre
areas=document.getElementById("elmap").getElementsByTagName("area"); // henter alle area's i elmap
for(i=0;i<areas.length;i++){
tmpc=areas[i].coords.replace(" ",""); // fjerner mellemrum i coords
elcoord[i]={ // object til holdning og senere håndtering af coords
ob:areas[i],coords:tmpc // Genvej til object og opbevaring af oprindelig coords
};
}
elimg=document.getElementById("elimg"); //
if(elimg.className.indexOf("elwpx")!=-1){ //hvis className indeholder elwpx er der tale om en width beregning
elwcalc=true; // og vi sætter en værdi der betegner at vi beregner på width
elprev=parseInt(elimg.className.replace("elwpx","")); // og så laver vi en variabel hvor vi har fjernet teksten
}else{
elwcalc=false; // hvis det ikke er width beregning så må det være height beregning (width er false)
elprev=parseInt(elimg.className.replace("elhpx","")); // og en variabel med erstatning af teksten
}
elmapalign();window.onresize=function(){elmapalign();}; // opstart af koordinat balancering fra start af og indstilling til at det skal kaldes hver gang siden resizes...
}
}
function elmapalign(){
elo=(elwcalc)?elimg.offsetWidth:elimg.offsetHeight; // elo er den nuværende width hvis elwcalc er true : ellers er det den nuværende height...
for(i in elcoord){ // løber igennem alle objecter i objectet elcoord
tmparr=elcoord[i].coords; // henter oprindelige koordinater til midlertidig array
tmparr=tmparr.split(","); // opdeler i et array
for(i2=0;i2<tmparr.length;i2++){ // gennemløber alle koordinater i midlertidig array
tmparr[i2]=Math.floor(tmparr[i2]/elprev*elo); // tager koordinater og dividerer med oprindelig width / height basering for at gange med den nuværende width / height afhængig af baseringen
}tmparr=tmparr.join(","); // samler array til en streng
elcoord[i].ob.setAttribute("coords",tmparr); // retter koordinater i area'et via objectet elcoord
}
}
</script>
</head><body>
<img src="elogo.png" alt=""
usemap ="#elmap" style="border:0px;width:100%;" id="elimg" class="elhpx110">
- skift imellem elwpx og elhpx for beregning på width eller height
<map id="elmap" name="elmap">
<area shape="rect" coords="0,0,50,50" href="
http://www.eksperten.dk"></map>
</body></html>