Hallo,
jetzt muss ich mich nochmal zurückmelden.
Als erstes muss ich schon loswerden, dass ich es sehr schade gefunden habe, dass wahsaga und Gernot Back (v.a. Gernot Back) meine Anfrage doch recht schroff beantwortet haben.
Es ist schade, dass man sich scheinbar erst in gewisser Art und Weise rechtfertigen und erklären muss, warum man was wofür benötigt, um die Chance zu bekommen, wirkliche Hilfestellungen zu erhalten.
Aufgrund der Vorgaben komme ich nicht herum, die aktuelle Seitenhöhe, die aktuelle Scrollposition und die Höhe des sichtbaren Bereiches festzustellen und entsprechend dynamisch darauf zu reagieren. Das hat rein gar nichts damit zu tun, dass ich mich in der Sache "Javascript" profilieren will, sondern es ist schlichtweg notwendig.
Gut, um zu meinem Problem zurückzukehren:
Einwandfrei funktioniert nun die Abfrage, ob man schon gescrollt hat oder nicht und die damit verbundene Anzeige der entsprechenden Navigationselemente.
Allerdings funktioniert die Prüfung noch nicht, ob man bereits am Seitenende angelangt ist und die entsprechenden Navigationselemente damit versteckt werden, oder nicht, d.h. die Navigationselemente werden nicht versteckt.
Hier der überarbeitete Code:
var Scrolling;
function Hoehe_Anzeigebereich_ermitteln ()
{
return document.all['AnzeigeSeite'].scrollHeight;
}
function Seitenhoehe_ermitteln ()
{
if (typeof document.height != 'undefined')
return parent.AnzeigeSeite.document.height;
else
{
var obj = getBody (parent.AnzeigeSeite);
return obj.scrollHeight;
}
}
function getBody (window)
{
return (window.document.compatMode && window.document.compatMode == "CSS1Compat") ? window.document.documentElement : window.document.body || null;
}
function Sichtbarkeit_aendern (id, NNtype, IEtype, WC3type)
{
if (document.getElementById)
eval ("document.getElementById(id).style.visibility = "" + WC3type + """);
else
if (document.layers)
document.layers[id].visibility = NNtype;
else
if (document.all)
eval ("document.all." + id + ".style.visibility = "" + IEtype + """);
}
function Scrollposition_ermitteln ()
{
if (typeof window.pageYOffset != 'undefined')
return parent.AnzeigeSeite.pageYOffset;
else
if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat')
return document.parent.AnzeigeSeite.scrollTop;
else
if (typeof document.body != 'undefined')
return parent.AnzeigeSeite.document.body.scrollTop;
}
function Nach_Oben_scrollen (Geschwindigkeit)
{
Scrolling = window.setInterval ('parent.AnzeigeSeite.scrollBy (0,' + Geschwindigkeit + ');Navigation_ausgeben ();', 1);
}
function Nach_Unten_scrollen (Geschwindigkeit, Hoehe_Anzeigebereich, Seitenhoehe)
{
Scrolling = window.setInterval ('parent.AnzeigeSeite.scrollBy (0,' + Geschwindigkeit + ');Navigation_ausgeben ();', 1);
}
function Scrolling_beenden ()
{
if (Scrolling)
window.clearInterval (Scrolling);
}
function Navigation_ausgeben ()
{
var Hoehe_Anzeigebereich = Hoehe_Anzeigebereich_ermitteln ();
var Seitenhoehe = Seitenhoehe_ermitteln ();
var Scrollposition = Scrollposition_ermitteln ();
if (Scrollposition == 0)
Sichtbarkeit_aendern ('Hoch', 'hidden', 'hidden', 'hidden');
else
Sichtbarkeit_aendern ('Hoch', 'show', 'visible', 'visible');
if (Scrollposition == Seitenhoehe)
Sichtbarkeit_aendern ('Runter', 'hidden', 'hidden', 'hidden');
else
Sichtbarkeit_aendern ('Runter', 'show', 'visible', 'visible');
if (Seitenhoehe > Hoehe_Anzeigebereich)
Sichtbarkeit_aendern ('Runter', 'show', 'visible', 'visible');
else
Sichtbarkeit_aendern ('Runter', 'hidden', 'hidden', 'hidden');
}
Was muss ich noch ändern bzw. verbessern, damit die Abfrage, ob man sich bereits am Seitenende befindet, funktioniert ?
Danke im voraus.
Michael