Avatar billede trane_frisk Nybegynder
30. maj 2005 - 02:30 Der er 9 kommentarer

Gøre 'områder' af billede til links

Hey

Jeg har et billede på min hjemmeside, som rummer alle linksne (Hovedside, Forum, Kontakt mig, Links etc.) - Jeg ved at man kan gøre  beskære bestemte områder af billedet til links, men hvordan aner jeg ikke - og om det kan gøres i rent HTML ved jeg heller ikke.

Men nu fx der hvor Links er placeret på billedet er fra pixel 80,80-160,100 - så vil jeg gerne gøre sådan at når man kører musen over så bliver den til en hånd og man kan klikke på knappen, og man kommer til Links-siden - altså ligesom et almindeligt link. Jeg har i gamle dage set det på masser af sider - nogen der kan sige mig hvordan jeg gør det??

På forhånd tak :-)
Avatar billede trane_frisk Nybegynder
30. maj 2005 - 03:00 #1
Eller faktisk... så er billedet lige nu baggrund i en celle i en tabel... så det skal bare være bestemte områder i en tabel...

Jeg mener der findes et program som man kan bruge til at markere bestemte områder af en celle, som man så kan gøre til links.

Nogen der kan hjælpe?
Avatar billede olebole Juniormester
30. maj 2005 - 03:00 #2
<ole>

Det kan du lave i de fleste billedbehandlings programmer, der kan lave billeder til WWW. Et typisk image-map (som det kaldes), kan se sådan ud:

<img src="ditPic.jpg.jpg" border="0" alt="En tekst om billedet" usemap="#myMap">

<map name="myMap">
    <area shape="rect" alt="Til Google" coords="38,24,186,110" href="http://www.google.dk">
</map>

/mvh
</bole>
Avatar billede olebole Juniormester
30. maj 2005 - 03:01 #3
- og nej, det kan du kun med et alm. billede ... ikke når det ligger som baggrundsbillede
Avatar billede olebole Juniormester
30. maj 2005 - 04:12 #4
Du kan evt. prøve denne her. Load et billede og klik det sted, du ønsker som 'centrum' for dit klikbare område ... det sætter koordinaterne. Derefter retter du bredde og højde og klikker 'Lav Map'.
Du kan teste dit map ved at klikke 'Test Map', hvilket åbner et vindue med billede og map:

<!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>OleBole ImageMapper</title>
    <meta http-equiv="imagetoolbar" content="no">
    <meta http-equiv="imagetoolbar" content="false">
<style type="text/css">
body, html {
    height: 100%;
    margin: 0px;
}
</style>
<script type="text/JavaScript">
var d=document;
function gE(id){return d.getElementById(id)};
function pI(n){return parseInt(n)};
function loadPic(path) {
    oPic.src = path;
    oPic.style.display = "block";
}
function getPos(elm) {
    for(var x=y=0;elm!=null;x+=elm.offsetLeft,y+=elm.offsetTop,elm=elm.offsetParent);
    return {x:x,y:y};
}
function setCoords(pic, e) {
    var pos = getPos(oPic);
    e = e||window.event;
    iC.value = (e.clientX-pos.x)+","+(e.clientY-pos.y);
}
function makeMap() {
    if (!iC.value.match(/^[\d]+,[\d]+$/)) return;
    var s, x1, x2, y1, y2, pos, css, a = iC.value.split(",");
    x1 = Math.round(pI(a[0])-(pI(iW.value)/2));
    y1 = Math.round(pI(a[1])-(pI(iH.value)/2));
    x2 = x1 + pI(iW.value);
    y2 = y1 + pI(iH.value);
    s = "<map name=\"MAP_NAME\">\n";
    s += "    <area shape=\"rect\" coords=\""+x1+","+y1+","+x2+","+y2+"\" alt=\"\" href=\"#\">\n";
    s += "</map>\n";
    tM.value = s;
    pos = getPos(oPic);
    css = rect.style;
    css.left = (x1+pos.x)+"px";
    css.top = (y1+pos.y)+"px";
    css.width = pI(iW.value)+"px";
    css.height = pI(iH.value)+"px";
    css.display = "block";
}
function testMap() {
    var s, doc = win.document;
    if (tM.value=="") return win.close();
    s = "<img src=\""+oPic.src+"\" border=\"0\" usemap=\"#MAP_NAME\">\r\n";
    s += tM.value;
    doc.open();
    doc.write(s);
    doc.close();
}
var oPic=iW=iH=iC=tM=win=null;
window.onload = function() {
    oPic = gE("pic");
    iW = gE("w");
    iH = gE("h");
    iC = gE("c");
    tM = gE("m");
    rect = gE("dRect");
    oPic.onclick = function(){setCoords(this, event)};
}
</script>
</head>
<body>
<div id="dRect" style="position:absolute;border:1px dashed red;display:none;z-index:10">&nbsp;</div>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
    <td>Billede:<br><input id="p" type="file" onchange="loadPic(this.value)"></td>
</tr>
<tr>
    <td>Bredde:<br><input id="w" type="text" value="100"></td>
</tr>
<tr>
    <td>Højde:<br><input id="h" type="text" value="100"></td>
</tr>
<tr>
    <td>Koordinater:<br><input id="c" type="text"></td>
</tr>
<tr>
    <td><button onclick="makeMap()">Lav Map</button>
        <button onclick="win=window.open('about:blank','win');setTimeout('testMap()',20)">Test Map</button></td>
</tr>
<tr>
    <td><img id="pic" src="" style="display:none"></td>
</tr>
<tr>
    <td>Map:<br><textarea id="m" style="width:600px;height:100px;"></textarea></td>
</tr>
</table>

</body>
</html>

Det er et ganske simpelt script, der lige er hakket af på 10 minutter. Det kan således kun håndtere rektangler - og kun ét ad gangen.
Du kan dog bare oprette et map og kopiere det over i et andet dokument. Nu kan du efterfølgende oprette andre area's og ligeledes kopiere dem over. Det kommer til at se ud noget à la:

<map name="MAP_NAME">
    <area shape="rect" coords="9,11,109,111" alt="" href="#">
    <area shape="rect" coords="184,107,234,157" alt="" href="#">
    <area shape="rect" coords="67,347,227,377" alt="" href="#">
</map>

Det kan du evt. kopiere tilbage i textarea'et og teste dit map, hvis du vil.
Det er simpelt, men det virker ... og er gratis  :)
Avatar billede olebole Juniormester
30. maj 2005 - 04:17 #5
PS: Du kan naturligvis manuelt rette koordinater/bredde/højde skiftevis med, du klikker 'Lav Map', så du kan flytte dit rektangel på plads, som du vil have det.
Det kan laves voldsomt meget federe. Det er kun et spørgsmål om at bruge tid på koden, men det funker da  ;o)
Avatar billede majsmarken Nybegynder
30. maj 2005 - 12:53 #6
I MS FrontPage findes efter sigende et punkt kaldet: HOTSPOT . Her kan du indramme et område af dit billed og derefter bestemme hvilket link den skal gå til...
Avatar billede majsmarken Nybegynder
30. maj 2005 - 12:56 #7
Avatar billede olebole Juniormester
30. maj 2005 - 18:01 #8
Ahaaaa ... det er dét FP kan!  :)
Avatar billede trane_frisk Nybegynder
12. juni 2005 - 04:58 #9
Hey olebole.

Tak for hjælpen! Lægger du lige som svar? :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester