Avatar billede lund_dk Praktikant
08. maj 2004 - 16:30 Der er 7 kommentarer og
1 løsning

Layer klik menu

Står og skal bruge en lille layer menu..

Forstået på den måde, at jeg har et link, når man klikker på den, skal en layer vises med et eller andet indhold..

Faktisk i samme stil som eksperten har, hvis man klikker på et navn inde i spørgsmål, så kommer der "vis brugermenu" og "Giv karma"

Nogen om kan hjælpe mig med at finde sådan et.. har kigget på adskillige hjemmesider indenfor DHTML og javascripts..
Avatar billede roenving Novice
08. maj 2004 - 16:34 #1
Afhængig af hvor voldsomt det kan blive, kan det være at overlib er overkill, men ellers er det den:

http://www.bosrup.com/web/overlib/
Avatar billede lund_dk Praktikant
08. maj 2004 - 17:01 #2
Desværre ikke noget jeg kan bruge..
Avatar billede skovenborg Nybegynder
08. maj 2004 - 17:09 #3
Det kan laves med en meget simpel funktion:
<script type="text/javascript">
  function showBox(ID) {
      elm = document.getElementById(ID);
      elm.style.display = (elm.style.display == "block") ? "none" : "block";
  }
</script>

og så kan du skrive:
<a href="java script:showBox('divID');">LINK</a><div id="divID" style="display:none;width:100px;background-color:#f0f0f0;border:1px solid #000">Boks med endnu et link <a href="#">LINK</a></div>

Det eneste der kræves af boksen er at den har en unik ID og har style="display:none;"  som attribut.
Avatar billede lund_dk Praktikant
08. maj 2004 - 17:42 #4
Jeg har fundet et script til det
http://www.lundfonts.com/fontsbeta/default.asp?s=fonts&sort=K

Klik på "detaljer" ved en font

Der er bare et problem at hvis du scroler ned til de nederste eks, så vises min layer ikke ud for mit klik, men længere opppe af siden.. hvordan undgår jeg dette ?

KODE:


<script>
// detaljer
function visMenu(ID,NAVN,AOA, e) {
obj = document.getElementById("menu");
obj.innerHTML = '<b>Detaljer for:</b><br>' + NAVN + '<br><br>Æøå:' + AOA + '<br><a href="default.asp?sanbefal&id=' + ID + '">Anbefal</a>';
obj.style.left = 10 + ((document.all) ? event.clientX : e.clientX);
obj.style.top = 3 + ((document.all) ? event.clientY : e.clientY);
obj.style.visibility = "visible";
}

function skjulMenu(e) {
obj = document.getElementById("menu");
id = (document.all) ? event.srcElement.id : e.target.id;
if (obj.style.visibility == "visible" && id != "menu")
obj.style.visibility = "hidden";
}
</script>

<div id="menu" style="visibility: hidden; position: absolute; width: 150px; background-color: #FFFFCC; border: 1px solid black;padding:2px;"></div>
Avatar billede roenving Novice
08. maj 2004 - 17:46 #5
Måske:

obj.style.left = 10 + ((document.all) ? event.clientX + document.body.scrollLeft : e.clientX);
obj.style.top = 3 + ((document.all) ? event.clientY + document.body.scrollTop : e.clientY);
Avatar billede lund_dk Praktikant
08. maj 2004 - 17:48 #6
Det virkede.. kanon :D
Avatar billede roenving Novice
08. maj 2004 - 17:57 #7
Forøvrigt er det egentlig en fejl, at der ikke er enhed på en style-property, så der burde stå:

obj.style.left = 10 + ((document.all) ? event.clientX + document.body.scrollLeft : e.clientX) + 'px';
obj.style.top = 3 + ((document.all) ? event.clientY + document.body.scrollTop : e.clientY) + 'px';

-- og velbekomme '-)
Avatar billede roenving Novice
08. maj 2004 - 18:18 #8
-- og tak for point ;~}
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