Teilweise scrollendes Menü
Mirakel
- css
0 bleicher0 Mirakel0 Der Martin
0 Mirakel
Hallo zusammen.
Ich suche ein scrollendes Menü, dass sich nicht am Bildschrim orientiert, sondern sich nur innerhalb einer Tabellenzelle bewegt.
"position:fixed" funktioniert hier nicht, da es ja immer die gleiche Position behält. Habe leider keine Ahnung von Java-Scripts, daher konnte ich die gefundenen leider nicht entsprechend modifizieren.
An dem Floating Menu Script von dynamicdrive habe ich mich versucht, war aber leider nicht erfolgreich :(
Ich habe mal eine Beispieldatei erstellt:
http://free.pages.at/hammerman/Scroll-test/scroll-test.htm
Hat da von euch zufällig jemand was parat, oder kennt eine CSS-basierte Lösung?
Bzw. kann man das dynamicdrive-Script soweit verändern, dass es sich an einer Tabellenzelle orientiert?
schonmal vielen Dank
Grüße,| Hallo zusammen.
Ich suche ein scrollendes Menü, dass sich nicht am Bildschrim orientiert, sondern sich nur innerhalb einer Tabellenzelle bewegt.
O_o?
overflow:scroll?
oder was meinst du mti scrollendem menu?
muss die tabelle sein? ist das etwa der böse fall des tabelllen alyouts?
MFG
bleicher
Naja, mit Overflow scroll, habe ich ja ne Scroll-Leiste. Genau die will ich aber nicht.
Es soll ein mitscrollendes Menü sein. Mit position:fixed kann man ein Element ja auf dem Bildschrim fixieren. Mein Menü soll dieses Verhalten aber nur bedingt zeigen. Mit Java-Script kann man Menüs erstellen, die automatisch mit scrollen, was dem position:fixed Effekt ja ziemlich gleicht. Ich bräuchte ein Menü, welches sich so ähnlich verhält, aber nicht am gesamten Bildschirm orientiert, sondern an einer Tabellenzelle.
<script type="text/javascript">
/*
Floating Menu script- Roy Whittle (http://www.javascript-fx.com/)
Script featured on/available at http://www.dynamicdrive.com/
This notice must stay intact for use
*/
//Enter "frombottom" or "fromtop"
var verticalpos="fromtop"
if (!document.layers)
document.write('</div>')
function JSFX_FloatTopDiv()
{
var startX = 710,
startY = 150;
var ns = (navigator.appName.indexOf("Netscape") != -1);
var d = document;
function ml(id)
{
var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id];
if(d.layers)el.style=el;
el.sP=function(x,y){this.style.left=x;this.style.top=y;};
el.x = startX;
if (verticalpos=="fromtop")
el.y = startY;
else{
el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
el.y -= startY;
}
return el;
}
window.stayTopLeft=function()
{
if (verticalpos=="fromtop"){
var pY = ns ? pageYOffset : document.body.scrollTop;
ftlObj.y += (pY + startY - ftlObj.y)/2;
}
else{
var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
ftlObj.y += (pY - startY - ftlObj.y)/2;
}
ftlObj.sP(ftlObj.x, ftlObj.y);
setTimeout("stayTopLeft()", 10);
}
ftlObj = ml("divStayTopLeft");
stayTopLeft();
}
JSFX_FloatTopDiv();
</script>
Dieses Script erfüllt den position:fixed Effekt mit JavaScript. Ich habs nur nicht geschafft, es entsprechend anzupassen. Außerdem wäre mir eine Lösung mit CSS lieber...
Ich habe das Tabellenlayout gewählt, weil es am einfachsten zu formatieren ist.
Selbst wenn ich mit divs ein Layout erstelle, wüsste ich aber immernoch nicht, wie ich das Problem lösen kann.
mfg
Mirakel
Hallo,
Es soll ein mitscrollendes Menü sein. Mit position:fixed kann man ein Element ja auf dem Bildschrim fixieren. Mein Menü soll dieses Verhalten aber nur bedingt zeigen. Mit Java-Script kann man Menüs erstellen, die automatisch mit scrollen, was dem position:fixed Effekt ja ziemlich gleicht.
nein, im Gegenteil: Mit position:fixed ausgestattete Elemente scrollen NICHT mit, sondern bleiben beim Scrollen fix stehen. Mitscrollen ist ja der Normalfall.
Ich bräuchte ein Menü, welches sich so ähnlich verhält, aber nicht am gesamten Bildschirm orientiert, sondern an einer Tabellenzelle.
Das verstehe ich nicht - kannst du das deutlicher/klarer ausdrücken?
if (!document.layers)
Oh je - hier will tatsächlich noch jemand Netscape 4 bedienen?! <faint />
el.sP=function(x,y){this.style.left=x;this.style.top=y;};
Das ist natürlich Unfug: An anderer Stelle erkennt man, dass für x und y nur Zahlenwerte übergeben werden. Diese ungültigen CSS-Eigenschaften muss ein ordentlicher Browser natürlich ignorieren.
Dieses Script erfüllt den position:fixed Effekt mit JavaScript.
Kaum zu glauben.
Ich habs nur nicht geschafft, es entsprechend anzupassen.
Das wäre auch Leichenschändung. Wegschmeißen und neu machen wäre sinnvoller.
Ciao,
Martin
Erstmal vielen Dank für die Antwort.
Das Script habe ich im Internet so gefunden und kam meinem Wunsch noch am nächsten. Es funktioniert für sich ganz gut, aber nicht so wie ich es brauche.
Ich versuche meinen Wunsch nochmal zu erklären:
Wie im Beispielspiellink habe ich eine Tabelle, die links den Inhalt enthält und rechts ein Menü enthalten soll.
Das Menü soll sich dabei innerhalb der Tabellenzelle wie "position:fixed" verhalten. Wenn die Zelle aber nicht mehr sichtbar ist, soll auch das Menü halt auch nicht mehr sichtbar sein.
Soweit ich mich damit jetzt beschäftigt habe, geht das wohl nur mit JavaScript.
und da kenne ich mich überhaupt nicht aus, konnte im Netz aber auch nichts passenderes finden, als das was ich gepostet habe :(