09. november 2004 - 13:11
Der er
19 kommentarer og 1 løsning
Layer som flyder midt på siden
kan man på en enkel måde positionere et div så det flyder horisontalt og vertikalt i midten af en html side?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
09. november 2004 - 13:14
#1
Altså nok noget med %, fordi besøgende kommer med forskellige vinduesstørrelser.
09. november 2004 - 13:15
#2
Ja. Du kan med javascript smage på browservinduets højde og bredde. Ligeledes kan du så også aflæse højden og bredden på dit layer, og så er resten simpel regning. :-) Et eksempel på at smage på vinduets højde og bredde. <html> <head> <script language=JavaScript1.2> function checkSize() { document.getElementById('tekst').innerHTML='Browserens opløsning: ' + document.body.clientWidth + ' x ' + document.body.clientHeight + '<br />'; } </script> <style type="text/css"> html { margin : 0px; height : 100%; } body { margin : 0px; height : 100%; overflow: hidden; color: #000000; background-color: #FFFFFF; } </style> </head> <body onload="checkSize();" onresize="checkSize();"> <div bgcolor="#000033" id="tekst">tst</div> </body> </html>
09. november 2004 - 13:17
#3
du behøver ikke at bruge procenter. Hvis f.eks. browserens højde og bredde er 1000x600 og dit layer i midten er 300x200 så siger du ((browser bredde) - (layer bredde))/2 = x-placering ((browser højde) - (layer højde))/2 = y-placering
09. november 2004 - 13:24
#4
tak sbm Nu har jeg implementeret din kode, men jeg mangler at lave den "simple regning" :) Hvordan får jeg det til at virke. Send lige svar for point.
09. november 2004 - 13:25
#5
Her er min side: <html> <head> <title>Fly In test</title> <script language=JavaScript1.2> function checkSize() { document.getElementById('tekst').innerHTML='Browserens opløsning: ' + document.body.clientWidth + ' x ' + document.body.clientHeight + '<br />'; } </script> <style type="text/css"> html { margin : 0px; height : 100%; } body { margin : 0px; height : 100%; overflow: hidden; color: #000000; background-color: #FFFFFF; } </style> <script language="JavaScript1.2" fptype="dynamicanimation" src="animate.js"> </script> </head> <body onload="dynAnimation();checkSize()" onresize="checkSize();"> <div bgcolor="#000033" id="tekst">tst</div> <table border=0 style="margin:20%;border:3px solid #cccccc"><tr><td> <span id="fpAnimspiralFP1" style="position: relative !important"> <img src="img/npt-streamer.jpg" border="0"> </span> <br><br> <span id="fpAnimhopWordsFP1" style="position: relative !important"> Netværks Markedsføring </span> </td></tr></table> </body> </html>
09. november 2004 - 13:28
#6
09. november 2004 - 13:35
#7
Tak roenving Men det ser også ud til at jeg kan bruge det her: <table width="100%" height="100%" border=0 style="border:3px solid #cccccc"> <tr> <td align="center" valign="middle"> <span> Mit centrerede indhold </span> </td> </tr> </table> Er det bedre med al det scripting?
09. november 2004 - 13:43
#8
Hvis man kan lave det på en måde, som betyder, at alle kan være med uanset browser og uanset de har javascript aktiveret, skal man bruge den, fremfor en løsning, som kun virker i nogle browsere og/eller ved stenalder-HTML !-)
09. november 2004 - 14:17
#9
Jeg må kigge tilbage engang i aften når jeg kommer hjem. Jeg har liiiidt travlt lige nu. :-)
09. november 2004 - 17:40
#10
Det er vist lidt overkill i forhold hvad jeg skal bruge det til med det scripting. Jeg klarer mig fint med stenalderregnestokken her. Tak for nærmest overdådig hjælp :)
09. november 2004 - 17:41
#11
Smid et svar hvis I vil have nogle point..
09. november 2004 - 18:07
#12
sbm Tak for din kode. Den viser vel det synlige område og ikke browservinduets størrelse. For der skal jo lige tillægges browserens hoved og bund.
09. november 2004 - 20:20
#13
Den viser "kun" højde og bredde på indholdsvinduet. Værktøjslinie, scrollbar osv er trukket fra.
09. november 2004 - 20:44
#14
Tak for den sbm. Den er ret smart. Jeg vil bruge koden på et andet tidspunkt :)
09. november 2004 - 21:17
#15
Her er et eksempel på et layer der bliver vist i dokumentet. Jeg har taget udgangspunkt i dit eget. Jeg håber det giver mening. Den kræver stadig lidt tweaking, men den er der vist næsten. <html> <head> <title>Fly In test</title> <script language="JavaScript1.2"> msiebrowser=(document.all)?true:false; var x = 0; var y = 0; function showBanner(){ document.getElementById('banner').style.display="inline"; } function hideBanner(){ document.getElementById('banner').style.display="none"; } function placeLayer() { e=document.getElementById('banner'); x = (document.body.clientWidth - e.scrollWidth)/ 2; y = (document.body.clientHeight - e.scrollHeight)/ 2; if(msiebrowser){ e.style.top=y; e.style.left=x; } else{ e.style.top=y+'px'; e.style.left=x+'px'; } } </script> <style type="text/css"> html { margin : 0px; height : 100%; } body { margin : 0px; height : 100%; overflow: hidden; color: #000000; background-color: #FFFFFF; } </style> </head> <body onload="placeLayer();showBanner();setTimeout('hideBanner()',5000);" onresize="placeLayer();"> <div id="banner" style="height: 100px; width: 200px; position: absolute; border: 3px solid green;"> Netværks Markedsføring </div> </body> </html>
09. november 2004 - 21:43
#16
Tak igen sbm Ved resize af ruden forsvinder layeret altså. Det forsvinder også hvis jeg fokuserer på et andet vindue, der ligger ovenpå.
09. november 2004 - 21:53
#17
Hmmm? Måske du ikke har bemærket at jeg sætter layeret til at forsvinde af sig selv efter fem sekunder? :-)
09. november 2004 - 21:54
#18
Jeg har selv testet i MSIE 6 og Firefox, og der virker det fint.
09. november 2004 - 21:55
#19
setTimeout('hideBanner()',5000) kalder hideBanner med 5 sekunders forsinkelse. Den kan du bare fjerne, hvis det ikke er det du vil.
10. november 2004 - 08:38
#20
OK, smart nok, den fangede jeg ikke i farten :)
Vi tilbyder markedets bedste kurser inden for webudvikling