Avatar billede qeqqer Nybegynder
11. december 2004 - 20:29 Der er 1 løsning

Popup billede ved mouseover

Ved ikke om det er det rigtige sted jeg har lagt spørgsmålet, men here goes:

Jeg ønsker en funktion ala dba, hvor der er et billede, og når man så holder musen over den, popper billedet op i en større model. Det jeg vil gøre anderledes, er at jeg skal bruge 2 forskellige billeder..

Efter lidt surfen på nettet er jeg kommet frem til:

<html>

<head>


<script type="text/javascript">

/***********************************************
* Image Thumbnail viewer- © Dynamic Drive (www.dynamicdrive.com)
* Last updated Sept 26th, 03'. This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var ie=document.all
var ns6=document.getElementById&&!document.all

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat" && !window.opera)? document.documentElement : document.body
}

function enlarge(which, e, position, imgwidth, imgheight){
if (ie||ns6){
crossobj=document.getElementById? document.getElementById("showimage") : document.all.showimage
if (position=="center"){
pgyoffset=ns6? parseInt(pageYOffset) : parseInt(ietruebody().scrollTop)
horzpos=ns6? pageXOffset+window.innerWidth/2-imgwidth/2 : ietruebody().scrollLeft+ietruebody().clientWidth/2-imgwidth/2
vertpos=ns6? pgyoffset+window.innerHeight/2-imgheight/2 : pgyoffset+ietruebody().clientHeight/2-imgheight/2
if (window.opera && window.innerHeight) //compensate for Opera toolbar
vertpos=pgyoffset+window.innerHeight/2-imgheight/2
vertpos=Math.max(pgyoffset, vertpos)
}
else{
var horzpos=ns6? pageXOffset+e.clientX : ietruebody().scrollLeft+event.clientX
var vertpos=ns6? pageYOffset+e.clientY : ietruebody().scrollTop+event.clientY
}
crossobj.style.left=horzpos+"px"
crossobj.style.top=vertpos+"px"

crossobj.innerHTML='<div align="right" id="dragbar"><img src="'+which+'">'
crossobj.style.visibility="visible"
return false
}
else //if NOT IE 4+ or NS 6+, simply display image in full browser window
return true
}

function closepreview(){
crossobj.style.visibility="hidden"
}

function drag_drop(e){
if (ie&&dragapproved){
crossobj.style.left=tempx+event.clientX-offsetx+"px"
crossobj.style.top=tempy+event.clientY-offsety+"px"
}
else if (ns6&&dragapproved){
crossobj.style.left=tempx+e.clientX-offsetx+"px"
crossobj.style.top=tempy+e.clientY-offsety+"px"
}
return false
}

function initializedrag(e){
if (ie&&event.srcElement.id=="dragbar"||ns6&&e.target.id=="dragbar"){
offsetx=ie? event.clientX : e.clientX
offsety=ie? event.clientY : e.clientY

tempx=parseInt(crossobj.style.left)
tempy=parseInt(crossobj.style.top)

dragapproved=true
document.onmousemove=drag_drop
}
}

document.onmousedown=initializedrag
document.onmouseup=new Function("dragapproved=false")

</script>

<STYLE type="text/css">
#showimage{
position:absolute;
visibility:hidden;
border: 1px solid gray;
}
</STYLE>
   
</head>

<body>
<div id="showimage"></div>

<A onMouseOut="closepreview()" onMouseOver="return enlarge('billede1.jpg',event,'center',0,0)"><IMG ALT='billedtekst' BORDER=0 HEIGHT=15 SRC=billede2.jpg WIDTH=15></A> <tr>
   
   
</body>

</html>



Problemet er, at popupen bare popper op det helt forkerte sted. vil gerne have det i nærheden af billede 2(det faste billede).

Håber på hjælp, da jeg slet ikke er inde i det her og alle koderne altså er kopieret rundt omkring.. (www.dynamicdrive.com)
Avatar billede kinderaeg Nybegynder
14. december 2004 - 15:51 #1
Variablen 'position' i funktionen enlarge bestemmer positionen, eller er i hvert fald tiltænkt dette. Den er dog kodet, så den kun tager imod positionen 'center'. Hvis du skriver alt andet en 'center' i funktionskaldet, skulle det nye billede åbnes hvor musen er.
Link'et kan altså se således ud:
<A onMouseOut="closepreview()" onMouseOver="return enlarge('billede1.jpg',event,0,0,0)"><IMG ALT='billedtekst' BORDER=0 HEIGHT=15 SRC=billede2.jpg WIDTH=15></A>
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