Ich würde gerne das Windows Contextmenü verhalten in meine Web-Seite adoptieren. Soll heißen: Falls die größe des Div's an der aktuellen Mausposition größer als das aktuelle Fenster wird, soll es nicht nach unten-rechts aufklappen sondern nach oben rechts. Falls oben rechts wieder kein Platz ist, usw... Also: Wie stellt man fest, ob die Größe eines Div's, größer als die aktuelle Fenstergröße ist?
Alternativ könntest du ein Plugin für ein JavaScriptFramework (z.B. jQuery nutzten) Dieses (http://www.javascripttoolbox.com/lib/contextmenu/) hat auch noch die Vorteile, dass du auf Themes etc. zurückgreifen kannst.
mit html und css kommst du da nicht weit. Ohne Javascript wird es nicht machbar sein. Mit jquery (jquery.com) könnte das Script (auszugsweise) so aussehen:
function willPopToLeft() { var popup = $('#popup');
var seite = $(window).height(); var navigation = $("#navigation").height();
if(seite >= navigation){ alert("seite ist größer"); //mach dies, oder das //alert("seitenhöhe: "+seite+"px | navigation: "+navigation+"px"); }else{ alert("seite ist kleiner"); //mach dies, oder das //alert("seitenhöhe: "+seite+"px | navigation: "+navigation+"px"); }
}); </script> </head>
<body> <div id="navigation"> <ul style="margin:0;padding:0"> <li>menü punkt 1</li> <li>menü punkt 2</li> <li>menü punkt 3</li> <li>menü punkt 4</li> </ul> </div> </body> </html>
Die tatsächliche Größe des sichtbaren Bereiches und die Werte den height und width zurückliefern müssen nicht zwingend gleich sein.
Das Verhalten kann sich zwischen verschiedenen Browsern ändern.
(wie ich selbst feststellen musste).
Speziell der IE (Version weiß ich jetzt auch nicht mehr) neigt dazu bei height Phantasiewerte abzusondern, die jenseits jeder Kinoleinwand liegen und sich nach jedem Aufruf auf magische Art vergrößern können (Ich tippe mal IE 6-).
Das der IE unter 7.0 das macht was er will, wundert hier sicher keinen.
Notfalls könnte man ja auch mit jquery den Browser und die genaue Version abfragen und für den IE unter Version 7.0 die Höhe anders ermittel falls es wirklich so sein sollte.
Wobei ich aber sagen muss das height(); von jquery sicher sehr zuverlässig ist. Außerdem sind Sie da dahinter das es bestmöglich in jedem Browser funktioniert, sonst hätte so ein Framework ja gar keinen Sinn.
Notfalls könnte man ja auch mit jquery den Browser und die genaue Version abfragen und für den IE unter Version 7.0 die Höhe anders ermittel falls es wirklich so sein sollte.
[url=http://docs.jquery.com/Utilities/jQuery.browser]Utilities/jQuery.browser[/url]
Wobei ich aber sagen muss das height(); von jquery sicher sehr zuverlässig ist. Außerdem sind Sie da dahinter das es bestmöglich in jedem Browser funktioniert, sonst hätte so ein Framework ja gar keinen Sinn.