Avatar billede elskermad.dk Nybegynder
05. juli 2004 - 21:08 Der er 9 kommentarer og
1 løsning

"flyvende" boks

hej eksperter :D

hvordan laver jeg en "flyvende" boks?

det skal være således at når jeg flytter musen hen over et billede eller tekst så kommer en boks frem (i valgfri størrelse - altså en div jeg selv kan sætte style på) og den skal så flytte sig med hvis jeg flytter musen lidt, men når musen flyttes uden for billedet/teksten igen skal den gå væk...

den må på ingen måde ændre det øvrige layout på siden så den skal nok være det øverste lag med en absolute position!

kode eksempel med forklaring vil gøre mig rigtig glad :]

på forhånd mange tak!
Avatar billede Jman Praktikant
05. juli 2004 - 21:11 #1
Denne kan du selv modificere med både tekst og billeder...

http://www.dynamicdrive.com/dynamicindex4/imagetooltip.htm
Avatar billede elskermad.dk Nybegynder
05. juli 2004 - 21:18 #2
vil meget gerne lærer lidt af at være bruger på eksperten.dk så derfor vil jeg ikke acceptere dit link - selvom det sikkert er værdig svar på mit spørgsmål!

hvis du step-for-step forklare hvad scriptet gør er dit svar accepteret :D
Avatar billede Jman Praktikant
05. juli 2004 - 21:21 #3
forklaringen står jo i koden
Ved hver "//" er der en beskrivelse af hvad der foregår
Avatar billede elskermad.dk Nybegynder
05. juli 2004 - 21:24 #4
ja men mit engelsk er ikke hvad det kunne være - desværre! :( på godt og forståeligt dansk (ikke alt for vildt computersprog) vil jeg få mere ud af det!
Avatar billede roenving Novice
06. juli 2004 - 02:20 #5
En simpel en, jeg har fået her inde fra ...

Jeg har desværre ikke registreret oprindelsen, men den kan du i hvert fald nok gennemskue !-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Show tooltip</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.tooltip{position:absolute;top:0;left:0;visibility:hidden;border:1px solid black;padding:3px;background:#DCE7E0;font-family:verdana;font-size:8pt;}
</style>
<script type="text/javascript">
var Ymouse = Xmouse = 0;
var ns6 = (document.getElementById && !document.all)?true:false;
var d = (ns6)?window:document;
d.onmousemove = getMousePos;

function getMousePos(evnt) {
  Ymouse = (ns6)?evnt.pageY:event.y;
  Xmouse = (ns6)?evnt.pageX:event.x;
  var inf = (ns6)?document.getElementById('info'):document.all.info;
  inf.style.left = Xmouse + 15;
  inf.style.top = Ymouse;
}

function show(){
  if(document.getElementById){
    document.getElementById('info').style.visibility = 'visible';
  }else if(document.all){
    document.all.info.style.visibility = 'visible';
  }
}

function hide(){
  if(document.getElementById){
    document.getElementById('info').style.visibility = 'hidden';
  }else if(document.all){
    document.all.info.style.visibility = 'hidden';
  }
}

</script>
</head>
<body>

<a href="#" id="link" onmouseout="hide();" onmouseover="show();">Hej</a>

<div id="info" class="tooltip">Hej med dig,<br> - skal vi have en lille sludder?</div>

</body>
</html>

Da den er lavet med en div er der ingen problemer i at vise hvad som helst, men skal den bruges til forskellige links er den ikke pt. færdig !-)
Avatar billede elskermad.dk Nybegynder
08. juli 2004 - 13:01 #6
lige sådan jeg skulle bruge det roenving - godt nok uden forklaring men eftersom scriptet er så enkelt er det nemt at gennemskue hvad det gør!

dog har jeg et lille problem med det. Hvis man fører musen helt ned i bunden til højre kommer der scroll - hvordan undgår jeg dette??

har lavet lidt om på scriptet således jeg kan få flere kommentare, er det muligt du kan udbedre "fejlen" på denne kode!?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Show tooltip</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.tooltip {
    position:absolute;
    top:0;
    left:0;
    visibility:hidden;
    border:1px solid black;
    padding:5px;
    background:#DCE7E0;
    font-family:verdana, arial;
    font-size:10px
}
</style>
<script type="text/javascript">
var Ymouse = Xmouse = 0;
var ns6 = (document.getElementById && !document.all)?true:false;
var d = (ns6)?window:document;
d.onmousemove = getMousePos;

function getMousePos(evnt) {
  Ymouse = (ns6)?evnt.pageY:event.y;
  Xmouse = (ns6)?evnt.pageX:event.x;
  var inf = (ns6)?document.getElementById('info'):document.all.info;
  inf.style.left = Xmouse + 15;
  inf.style.top = Ymouse;
}

function show(){
  if(document.getElementById){
    document.getElementById('info').style.visibility = 'visible';
  }else if(document.all){
    document.all.info.style.visibility = 'visible';
  }
}

function hide(){
  if(document.getElementById){
    document.getElementById('info').style.visibility = 'hidden';
  }else if(document.all){
    document.all.info.style.visibility = 'hidden';
  }
}

function text(tekst){
  if(document.getElementById){
    document.getElementById('info').innerHTML = tekst;
  }else if(document.all){
    document.all.info.innerHTML = tekst;
  }
}

</script>
</head>
<body>

<div id='info' class='tooltip'></div>

<a href='#' onmouseout='hide()' onmouseover='show();text("Hej med dig,<br> - skal vi have en lille sludder?")'>Hej</a><br>
<a href='#' onmouseout='hide()' onmouseover='show();text("Eller er det bare lige meget?")'>en til link</a><br>

</body>
</html>

og meget gerne et svar så du kan få lidt point :]
Avatar billede roenving Novice
08. juli 2004 - 13:42 #7
Vi må jo så aflæse højde og bredde både på vinduet og info-boksen, så den ikke ryger udover kanten ...

Men da IE ikke har sådan en størrelse, må vi der aflæse dokument-højden, og så skal den sættes til at fylde det hele i stylesheetet:

html,body{height:100%;margin:0px;border:0px;padding:0px;}

<script type="text/javascript">
var Ymouse = Xmouse = 0;
var winY = winX = infoY = infoX = 0;
var ns6 = (document.getElementById && !document.all)?true:false;
var d = (ns6)?window:document;
d.onmousemove = getMousePos;

function getMousePos(evnt) {
  Ymouse = (ns6)?evnt.pageY:event.y;
  Xmouse = (ns6)?evnt.pageX:event.x;
  winY = (window.innerHeight)?window.innerHeight:document.body.offsetHeight;
  winX = (window.innerWidth)?window.innerWidth:document.body.offsetWidth;
  var inf = (ns6)?document.getElementById('info'):document.all.info;
  infoY = inf.offsetHeight;
  infoX = inf.offsetWidth;
  inf.style.left = Math.min(Xmouse + 15,winX-infoX) + 'px';
  inf.style.top = Math.min(Ymouse,winY-infoY) + 'px';
}

Velbekomme '-)
Avatar billede roenving Novice
08. juli 2004 - 13:42 #8
;O)
Avatar billede elskermad.dk Nybegynder
08. juli 2004 - 13:47 #9
jep det er bare perfekt :]

jeg siger mange tak! forsat god dag...
Avatar billede roenving Novice
08. juli 2004 - 14:03 #10
-- og jeg siger 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