Wie weet hoe links in een afbeelding geplaatst worden ?

Status
Niet open voor verdere reacties.
Met pijn en moeite. Die vlakken zijn losse (gelinkte) afbeeldingen die bovenop de originele afbeelding zijn geplaatst, dat komt dus erg precies. Als ik het me goed herinner heeft csshunter een keer op dit forum een mooi verhaal geschreven over hoe je dat kunt doen. Ik kan het niet direct vinden maar misschien dat hij nog weet waar het staat.

EDIT: hah, ik kwam het draadje toch nog tegen (of in elk geval één die er op lijkt) http://www.helpmij.nl/forum/showthr...eggen-zetten?p=3526580&viewfull=1#post3526580.
 
Laatst bewerkt:
Bedankt voor de tip !
heb ik alweer wat te doen in de avonduren...
lijkt me een leuke grappige optie om eens te bekijken..
 
De site in de OP gebruikt een image map, en die zijn niet zo moeilijk te maken.
 
Hoi Jolanda,
De museum-site gebruikt géén image-map (dan zou ook in de broncode de tag <area> moeten opduiken, en die staat er niet in), en is ook geen css-hover zoals in de link van Naarling beschreven staat.

Op de museum-site is met een derde techniek gewerkt: "javascript-rollovers", wat niet ideaal is.

En als ik de museum-site bekijk, dan is dat ook nog eens op een verschrikkelijk code-slurpende manier gedaan (waarschijnlijk door het gebruik van de Studio Webdesign-webeditor [alias "Serif WebPlus X4", zie ook hier], die niet anders kan):
HTML:
<div style="position:absolute; left:555px; top:631px; width:106px; height:48px;">
    <a onmouseover="PPImgAction('over','roll_5')" onmouseout="PPImgAction('out','roll_5')" 
    href="museum-stock.html"><img border="0" width="106" height="48" 
    alt=" Stock" title="" name="roll_5" id="roll_5" src="pl zaal a uit.jpg"></a>
</div>
<div style="position:absolute; left:637px; top:605px; width:113px; height:26px;">
    <a onmouseover="PPImgAction('over','roll_6')" onmouseout="PPImgAction('out','roll_6')" 
    href="museum-thematentoonstelling.html"><img border="0" width="113" height="26" 
    alt="Zaal E: Thema tentoonstelling" title="" name="roll_6" id="roll_6" 
    src="http://www.reinoutk.nl/pl%20zaal%20b%20uit.jpg"></a>
</div>
<div style="position:absolute; left:615px; top:564px; width:91px; height:15px;">
    <a onmouseover="PPImgAction('over','roll_7')" onmouseout="PPImgAction('out','roll_7')" 
    href="museum-nieuw-werk-1.html"><img border="0" width="91" height="15" 
    alt="zaal A:  nieuw werk I" title="" name="roll_7" id="roll_7" src="pl zaal c uit.jpg"></a>
</div>
<div style="position:absolute; left:487px; top:584px; width:148px; height:41px;">
    <a onmouseover="PPImgAction('over','roll_8')" onmouseout="PPImgAction('out','roll_8')" 
    href="museum-nieuw-werk-2.html"><img border="0" width="148" height="41" 
    alt="Zaal B: nieuw werk II" title="" name="roll_8" id="roll_8" src="pl zaal d uit.jpg"></a>
</div>
en nog 4

Op deze javascript-manier zijn er ontzettend veel images nodig: twee voor elk gekleurd museum-deel dat aangeklikt kan worden (keer 8 stuks), en één voor het totaal => 17 images die allemaal gedownload moeten worden.

Met de css-hover-manier is er maar 1 nodig: één gecombineerd image voor het totaal en voor alle hovers tegelijk.
De truc is dat het image als background-image geplaatst wordt en niet als voorgrond-img in de html, waardoor er makkelijk met de plek van het image geschoven kan worden om de verschillende onderdelen te tonen (zie: de Patrijspoort-theorie).
En de html kan dan bv. worden:
HTML:
<ul id="zalen">
    <li><a id="zaal1" href="zaal1.htm"></a></li>
    <li><a id="zaal2" href="zaal2.htm"></a></li>
    <li><a id="zaal3" href="zaal3.htm"></a></li>
    <li><a id="zaal4" href="zaal4.htm"></a></li>
    ... en nog 4
</ul>
Meer niet! ;)
In de css wordt dan de precieze plek van de oppervlakjes en de inhoud ervan geregeld. Dat wordt dan zoiets als:
Code:
#zalen {
    ...
    width: 400px;
    height: 300px;
    background: url(images/zalen.png);
    position: relative;
    }
#zalen li {
    ...
    }
#zalen a {
    position: absolute;
    display: block;
    }
#zaal1 { top: 20px; left: 30px; width: 30px; height: 25px; background-position: -400px 0; }
#zaal2 { top: 30px; left: 65px; width: 20px; height: 35px; background-position: -400px -25px; }
#zaal3 { ... }
#zaal4 { ... }

#zalen a:hover,
#zalen a:focus {
    background: url(images/zalen.png);
    }

Keuze maken
Bij het maken van een keus voor 1 van de 3 technieken zou ik de javascript methode afraden.
Blijven over: de css-hover methode en de image-map methode. Wie van de twee hangt erg af van de afbeelding die je hebt en waar er precies gehoverd/geklikt moet kunnen worden:


  1. Als je van de afbeelding een tekening kunt maken waarop de te hoveren/klikken partjes allemaal als rechthoekjes kunnen worden getekend die elkaar niet overlappen, dan is de css-methode prima en heeft voordelen boven de image-map methode.

  2. Maar als de oppervlakjes hele grillige vormen hebben en/of elkaar overlappen (bv. een kaart van Nederland met alle provincies, die als puzzelstukjes in elkaar passen), dan zijn die rechthoekjes niet mogelijk, en zal je een image-map moeten gebruiken.

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan