Avatar billede tsearex Nybegynder
15. januar 2003 - 13:13 Der er 7 kommentarer og
1 løsning

Anden farve ved mouse over

Jeg har et billede hvor jeg har oprettet et hotspot eller link om man vil. Jeg vil gerne have at når jeg køre musen over linket skal det skifte farve. Koden som jeg bruger er neden for. Kan man bruge hover ? eller er der nogen som ved hvordan man ellers kan gøre ????

<area shape="poly" coords="198,24,198,42,206,50,220,54,228,54,228,44,228,36,206,22" href="klubber.asp" alt="klubber Bornholm" title="klubber Bornholm">
Avatar billede cdc Novice
15. januar 2003 - 13:24 #1
er ret sikker på at man ikke kan lave denne funktion, i et area.
Avatar billede cdc Novice
15. januar 2003 - 13:30 #2
Du kan løse problemet med at lave nogle layers:

<head>
<style type="text/css"><!--
#image1  { position: absolute; width: 400; visibility: visible; }
#image1a { position: absolute; top: 25; left: 25;  width: 150; visibility: hidden; }
#image1b { position: absolute; top: 25; left: 225; width: 150; visibility: hidden; }
--></style>

<script language="JavaScript"><!--
if (document.layers)
    var doc = 'document.image1.document.', vis = '.visibility';
if (document.all)
  var doc = 'document.all.', vis = '.style.visibility';

function show(object) {
    if (document.layers || document.all)
        eval(doc + object + vis + ' = "visible"');
}

function hide(object) {
    if (document.layers || document.all)
        eval(doc + object + vis + ' = "hidden"');
}

function hideAll() {
    hide('image1a');
    hide('image1b');
}
//--></script>

</head>

<body>

<map name="image-map1">
<area shape="rect" coords="0,0,400,25"    href="#" onMouseover="hideAll()">
<area shape="rect" coords="0,25,25,375"    href="#" onMouseover="hideAll()">
<area shape="rect" coords="25,25,174,375"  href="#" onMouseover="hideAll();show('image1a')">
<area shape="rect" coords="175,25,225,375" href="#" onMouseover="hideAll()">
<area shape="rect" coords="225,25,375,375" href="#" onMouseover="hideAll();show('image1b')">
<area shape="rect" coords="375,25,400,375" href="#" onMouseover="hideAll()">
<area shape="rect" coords="0,375,400,400"  href="#" onMouseover="hideAll()">
</map>

<span id="image1">
  <img src="image.gif" border="0" width="400" height="400" usemap="#image-map1" onMouseout="hideAll()">

  <span id="image1a">
  <img src="image1a.gif" border="0" width="150" height="350" onMouseout="hideAll()">
  </span>

  <span id="image1b">
  <img src="image1b.gif" border="0" width="150" height="350" onMouseout="hideAll()">
  </span>
</span>

</body>
</html>
Avatar billede tsearex Nybegynder
15. januar 2003 - 13:34 #3
Jeg ser lige om der kommer et andet svar, hvis ikke der kommer noget får du dine point.
Tak for hjælpen !
Avatar billede josini Nybegynder
15. januar 2003 - 13:37 #4
Helt nøjagtig hvad er det du vil have til at skifte farve i dit area - kan man se det i funktion et eller andet sted?

Har du prøvet med onmouseover og onmouseout?
Avatar billede tsearex Nybegynder
15. januar 2003 - 13:43 #5
Jeg har ikke prøvet med onmouseover og onmouseout. Det er hele det valgte area der skal skifte farve så man kan se hvad man markere.
Avatar billede tsearex Nybegynder
15. januar 2003 - 13:44 #6
Bliver nød til at gå en ½ time men jeg vender tilbage.
Avatar billede olebole Juniormester
15. januar 2003 - 15:25 #7
<ole>

/cdc >> Jeg er zq ved at få rigtig dårlig samvittighed over at bombe alle dine svar  :)
Idéen er for såvidt god nok ... men du kan vist ikke rigtig klikke på area'et, når der ligger et lag og skygger.
Jeg har tilladt mig at lave et andet forslag, som faktisk er ganske 'sexy', når jeg selv skal sige det - og lidt selvfedme går jeg jo aldrig af vejen for  :D

<html>
<head>
<style type="text/css">
#mapDiv {
    position: absolute;
    background-color: #336699;
    border: 1px dashed #000000;
    filter: Alpha(opacity=30);
    -moz-opacity: 0.3;
    font-size: 1px;
    visibility: hidden;
    z-index: 2;
}
</style>
<script type="text/JavaScript">
var actLink, d = document;
function getPos(elm){
    for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
    return {x:zx,y:zy}
}
function showMap( mArea ) {
    actLink = mArea.href;
    var pos, mD = d.getElementById("mapDiv");
    pos = getPos( d.getElementById("myPic") );
    mC = mArea.coords.split(",");
    mD.style.left = parseInt(mC[0]) + pos.x;
    mD.style.top = parseInt(mC[1]) + pos.y;
    mD.style.width = parseInt(mC[2]) - parseInt(mC[0]);
    mD.style.height = parseInt(mC[3]) - parseInt(mC[1]);
    mD.style.visibility = "visible";
}
function hideMap() {
    d.getElementById("mapDiv").style.visibility = "hidden";
}
</script>
</head>
<body>
<div id="mapDiv" onclick="location.href=actLink;" onmouseout="hideMap();">&nbsp;</div>

<img id="myPic" src="alle_On.gif" width="164" height="201" usemap="#test" border="0">

<map name="test">
    <area href="#" shape="rect" coords="7,5,96,178" onmouseover="showMap(this);">
    <area href="#" shape="rect" coords="101,99,160,198" onmouseover="showMap(this);">
    <area href="#" shape="rect" coords="124,6,158,40" onmouseover="showMap(this);">
</map>
</body>
</html>

Mit eksempel tager kun højde for rektangulære areas, men det burde så vidt jeg kan se ikke volde problemer i det skitserede tilfælde.
Try it out  :)

/mvh
</bole>
Avatar billede cdc Novice
15. januar 2003 - 15:40 #8
Det er jo også svært at hamle op med en som dig olebole :o) Men jeg vil heller prøve en at lade være, for så lærer man da noget mere hver gang....
Men se selv idéen var der kan du se, ber ikke så hgennemtænkt som ding, glemte lige at man ikke kunne klikke på area :o)

/cdc
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