bootmeup
Goto Top

HTML (DIV) Layer über komplette Webseite

Hallo,

ich möchte gerne nach dem Klick auf einen Button einen grauen und halb durchsichtigen Layer über die gesamte Webseite anzeigen, auf dem eine weiße Infobox mit einem Text zu sehen ist.

Das Problrm ist jedoch, dass egal wie hoch (height) die Seite ist, der Layer immer nur im oberen Sichtbereich angezeigt wird. Ich möchte also, dass egal an welcher STelle man sich auf der Webseite befindet, und man den Button drückt, dass sich an genau dieser STelle der Layer entfaltet und die Infobox mittig zu sehen ist.

Man kann sich das ganze vllt besser vorstellen, wenn man sich dieses vereinfachte Beispiel anschaut.
Wenn man den Button unterhalt des Sichtberieches klickt, öffnet sich der Layer trotzdem ganz oben.

hat jemand einen Tipp??

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html>
<HEAD>
<TITLE>Test</TITLE>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />  


<style type="text/css">  

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


#layer
{
	z-index:90;
	opacity:0.5;
	filter:alpha(opacity=50); /* For IE8 and earlier */
	-moz-opacity:.5;
	background-color:#000000;
	position:absolute; 
	min-height: 100%;
	height:auto !important;
	height:100%;
	overflow: hidden !important;	
	top:0;
	left:0; 
	width:100%; 
	margin: auto;
}

#info_div
{
	z-index:99;
	background-color:#ffffff;
	position:absolute; 
	height:300px; 
	width:400px; 
	top:50%;
	left:50%;
	margin-left:-150px;
	margin-top:-200px;	
}
 
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
<script type="text/javascript">  

var layer_and_box = "<div id='layer'></div>" +  
				  "<div id='info_div'>" +  
				  "<h1>Infobox..</h1>" +  
			      "</div>";  

function display_layer() {
	jQuery('body').prepend(layer_and_box);  
}



</script>	
</head>
<body>


<input type='button' value='show layer' onclick='javascript:display_layer()'>  
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<input type='button' value='show layer' onclick='javascript:display_layer()'>  
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<input type='button' value='show layer' onclick='javascript:display_layer()'>  
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<input type='button' value='show layer' onclick='javascript:display_layer()'>  
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<input type='button' value='show layer' onclick='javascript:display_layer()'>  
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<input type='button' value='show layer' onclick='javascript:display_layer()'>  


</body>
</html>


Grüße

Content-ID: 180190

Url: https://administrator.de/forum/html-div-layer-ueber-komplette-webseite-180190.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

nxclass
nxclass 07.02.2012 um 22:29:05 Uhr
Goto Top
Wenn Du ein Knoten dem BODY hinzufügst, dann beziehen sich deine CSS Angaben (height und top) auch darauf, also auf das gesamte Dokument.

EDIT: ändere beide angaben in:
position: fixed;
bootmeup
bootmeup 07.02.2012 um 22:32:38 Uhr
Goto Top
was genau meinst du mit "einen Knoten dem body hinzufügen"?
nxclass
nxclass 07.02.2012 um 22:40:40 Uhr
Goto Top
was genau meinst du mit "einen Knoten dem body hinzufügen"?
mit *$('body').prepend();* fügst Du doch HTML Knoten (nodes) zu deiner HTML Struktur hinzu - aber das ist ja nicht das Problem. Die Positionierung willst Du ja scheinbar nicht anhand des Dokuments (BODY) sondern des Browsers ausrichten.
bootmeup
bootmeup 07.02.2012 um 22:44:37 Uhr
Goto Top
genau das ist die lösung.... "position: fixed"...
ich danke dir vielmals!!!