Hallo zusammen.
Ich möchte für ein Projekt in meinem Lehrbetrieb ein Menü generieren, welches
mit dem runterscrollen mitfliesst. Damit ihr euch das ein bisschen besser vorstellen könnt, gebe ich hier die Adresse, so wie ich es will: Hier
Dieses Menu hier ist gemeint:
Wenn ihr runterscrollt könnt ihr feststellen, dass das Menu mitkommt.
Wie schaffe ich das ?
Ich habe bereits rausgefunden, dass es ein js-Script ist, welches diese Animation verursacht. Unter http://www.berufsberatung.ch/includes/script.js findet ihr das Script.
Meine Frage ist nun, welchen Teil des Scriptes ich kopieren muss oder was ich sonst noch tun muss, damit es funktioniert.
Ist glaubs CSS, in diesem Quelltext wäre es dieser Layer:
<div>
Nachtrag: Das Javascript dazu wäre wohl dieses hier
// ---------------------------------------------------------------------------------------------
// Funktion zum Bewegen der Ankernavigation
// Der Wert TOPMARGIN = ... gibt an wieviel der Abstand zum oberen Browserrand beträgt.
// Der Wert SLIDETIME = ... gibt an in welcher Geschwindigkeit die Animation abläuft.
// Der Wert LEFTMARGIN = ... gibt an wieviel der Abstand zum linken Browserrand beträgt.
// ---------------------------------------------------------------------------------------------
window.onerror = null;
var topMargin = 137;
var slideTime = 1000;
var ns6 = (!document.all && document.getElementById);
var ie4 = (document.all);
var ns4 = (document.layers);
/*--- Extended by fugu */
function layerObject(id,left) {
if (ns6 && document.getElementById(id)!=null) {
this.obj = document.getElementById(id).style;
if(this.obj!=null)
this.obj.left = left;
return this.obj;
}
else if(ie4 && document.all[id]!=null) {
this.obj = document.all[id].style;
if(this.obj!=null)
this.obj.left = left;
return this.obj;
}
else if(ns4 && document.layers[id]!=null) {
this.obj = document.layers[id];
if(this.obj!=null)
this.obj.left = left;
return this.obj;
}
}
function layerSetup() {
floatLyr = new layerObject('floatLayer', leftMargin=160);
if(floatLyr.left!=null)
window.setInterval("main()", 10)
}
/* Extended by fugu ---*/
function floatObject() {
if (ns4 || ns6) {
findHt = window.innerHeight;
} else if(ie4) {
findHt = document.body.clientHeight;
}
}
function main() {
if (ns4) {
this.currentY = document.layers["floatLayer"].top;
this.scrollTop = window.pageYOffset;
mainTrigger();
}
else if(ns6) {
this.currentY = parseInt(document.getElementById('floatLayer').style.top);
this.scrollTop = scrollY;
mainTrigger();
} else if(ie4) {
this.currentY = floatLayer.style.pixelTop;
this.scrollTop = document.body.scrollTop;
mainTrigger();
}
}
function mainTrigger() {
var newTargetY = this.scrollTop + this.topMargin;
if ( this.currentY != newTargetY ) {
if ( newTargetY != this.targetY ) {
this.targetY = newTargetY;
floatStart();
}
animator();
}
}
function floatStart() {
var now = new Date();
this.A = this.targetY - this.currentY;
this.B = Math.PI / ( 2 * this.slideTime );
this.C = now.getTime();
if (Math.abs(this.A) > this.findHt) {
this.D = this.A > 0 ? this.targetY - this.findHt : this.targetY + this.findHt;
this.A = this.A > 0 ? this.findHt : -this.findHt;
}
else {
this.D = this.currentY;
}
}
function animator() {
var now = new Date();
var newY = this.A * Math.sin( this.B * ( now.getTime() - this.C ) ) + this.D;
newY = Math.round(newY);
if (( this.A > 0 && newY > this.currentY ) || ( this.A < 0 && newY < this.currentY )) {
if ( ie4 )document.all.floatLayer.style.pixelTop = newY;
if ( ns4 )document.layers["floatLayer"].top = newY;
if ( ns6 )document.getElementById('floatLayer').style.top = newY + "px";
}
}
function start() {
if(ns6||ns4) {
pageWidth = innerWidth;
pageHeight = innerHeight;
layerSetup();
floatObject();
}
else if(ie4) {
pageWidth = document.body.clientWidth;
pageHeight = document.body.clientHeight;
layerSetup();
floatObject();
}
/*--- Extended by fugu */
loaded();
}
function loaded(){}
/* Extended by fugu ---*/
irgendwie fehlt dann aber glaubs immer noch was ???
(Bearbeitet am 13. Juni 2005 um 15:19 Uhr von )
Anmelden um neue Antworten zu verfassen
Allegra Leser! Nur angemeldete Nutzer können bei diesem Beitrag Antworten hinterlassen. Jetzt kostenlos registrieren oder mit bestehendem Benutzerprofil anmelden.
Ab CHF 5.– im Monat
👉🏼 Wir benötigen deine Unterstützung! Unterstütze macprime mit einem freiwilligen Gönner-Abo und mache die Zukunft unseres unabhängigen Apple-Mediums aus der Schweiz mit möglich.
macprime unterstützen
macprime ForumFliessendes Menu
VonAntwort von Hitsch
Unsere Sponsoren
Apps with love entwickelt digitale Produkte, die das Leben vereinfachen.
Dich als Sponsor präsentieren und macprime mit möglich machen.
ccone
(Bearbeitet am 13. Juni 2005 um 15:19 Uhr von )
Anmelden um neue Antworten zu verfassen
Allegra Leser! Nur angemeldete Nutzer können bei diesem Beitrag Antworten hinterlassen. Jetzt kostenlos registrieren oder mit bestehendem Benutzerprofil anmelden.