Probs beim Bewegen von «div» Layern
Stefaan
- javascript
0 Thomas J.0 Kai Werner0 BioNauT
Servus!
Ich hab ein kleines Problem mit dem Bewegen von <div> Layern. In Selfhtml hab ich nur Beschreibungen für <layer> Layer gefunden.
Es schaut so aus: Ich hab ein Menü in einem Layer liegen, dass mit 2 Buttons rauf und runter Bewegt werden soll. Ich hab bis jetzt noch keinen Ansatz gefunden, der sowohl im IE als auch unter NN funktioniert!
Danke euch!
Stefan
Kleiner Tip: www.dansteinman.com/dynduo/
Da gibt es (fast) alles, was das Herz begehrt.
Servus!
Danke einmal für den Tipp, ich hab mir dort ein Bsp. rauskopiert, nur in abgeänderter Version gehts nicht :(
Hier ist es, ich finde keinen Fehler.. *grr*
Dort gehts aber.... *gr*
Das Script:
<script language="Javascript">
<!--
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false
function init() {
if (ns4) menue = document.menu
if (ie4) menue = menu.style
menue.xpos = parseInt(menue.left)
menue.ypos = parseInt(menue.top)
}
function moveBy(obj,x,y) {
obj.xpos += x
obj.left = obj.xpos
obj.ypos += y
obj.top = obj.ypos
alert(obj.left)
alert(obj.top)
}
//-->
</script>
und der Body - Teil:
Link, dass das Menü rauffahren soll....
<A HREF="javascript:moveBy(menue,10,0)">rauf</A>
Das Menü selber:
<div id="menu" style="position:absolute;top:20px;left:3px"></div>
aja.. noch dir URL zu dem ganzen:
http://www.borgmistelbach.ac.at
Im NN tut sich gar nichts, im IE krieg ich noch ne Fehlermeldung, dass das Obj "menue" nicht def. ist! (Zeile 0)
Danke euch vielmals!
Stefan
Servus!
Hab den Fehler!
Danke für eure Bemühungen!
(Ist aber noch nicht online!)
Stefan
Servus!
Ich hab ein kleines Problem mit dem Bewegen von <div> Layern. In Selfhtml hab ich nur Beschreibungen für <layer> Layer gefunden.
Es schaut so aus: Ich hab ein Menü in einem Layer liegen, dass mit 2 Buttons rauf und runter Bewegt werden soll. Ich hab bis jetzt noch keinen Ansatz gefunden, der sowohl im IE als auch unter NN funktioniert!Danke euch!
Stefan
Hallo Stefan
habe sowas schon auf meiner Seite gemacht und es funktioniert soweit auch ganz gut (mit IE5.0 bzw. NN4.7) :-)
Hier kommt mal der Code(auszug) dazu:
Hoffe er hilft dir...
function Init()
{
isIE = (document.all != null);
isNS = (document.layers != null);
if (isNS)
{
doc = "document";
sty = "";
}
if (isIE)
{
doc = "document.all";
sty = ".style";
}
}
function menu()
{
if (bHide)
showmenu();
else
hidemenu();
}
function hidemenu()
{
if (bHide != true)
{
nPos-=3;
if (nPos > -90)
bCont = true;
else
bCont = false;
tmp = eval(doc + '["divMenu"]' + sty);
tmp.top = nPos;
if (bCont == true)
window.setTimeout("hidemenu()",1);
else
bHide = true;
}
}
function showmenu()
{
if (bHide != false)
{
nPos+=3;
if (nPos < 0)
bCont = true;
else
bCont = false;
tmp = eval(doc + '["divMenu"]' + sty);
tmp.top = nPos;
if (bCont == true)
window.setTimeout("showmenu()",1);
else
bHide = false;
}
}
<body onload="Init()">
<div id="divMenu" style="position:absolute">
<img src="xyz.gif" name="imgMenu" border="0">
<!-- aus einem Link heraus "javascript:menu()" aufrufen -->
<!-- bzw. ShowMenu()/HideMenu() -->
</div>
</body>
... Bewegen von <div> Layern
Es schaut so aus: Ich hab ein Menü in einem Layer liegen, dass mit 2 Buttons rauf und runter Bewegt werden soll. Ich hab bis jetzt noch keinen Ansatz gefunden, der sowohl im IE als auch unter NN funktioniert!
In der Tat behandeln NS und IE die Layer verschieden.
Ich mache immer (bei einem ähnlichen Problem: Layer sollen bei MouseOver erscheinen und dann verschwinden) folgendes:
Abfrage nach Browser; ist klar:
var isNS = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4);
dann schon der erste Unterschied:
var HIDDEN = (isNS) ? 'hide' : 'hidden';
var VISIBLE = (isNS) ? 'show' : 'visible';
dann der Zweite:
var pop1 = (isNS) ? document.pop1 : document.all.pop1.style;
die OnMouseOver-Referenz:
<A HREF="TEXT.html" onMouseOver = "showObject(pop1)" onMouseOut = "hideObject(pop1)">
<B>SOMETEXT</B></CENTER></A>
und der eigentliche Layer, der verschwinden und erscheinen soll
<DIV ID = "pop1" CLASS = "popupr">Wer oder was sind die 7M?</DIV>
Du müßtest dieses Script praktisch nur in der angewendeten Funktion hinter pop1 ändern. Der ID-Tag markiert den Layer praktisch für das Script und der CLASS-Tag enthält nur Formatierungsangaben (in dem Falle eine Box um den Text an einem bestimmten Ort).
Das dieses Script so funktioniert, davon kannst Du Dich hier (HTTP://www.physcip.uni-stuttgart.de/phy21054/tree/clan/clan.html) überzeugen.