|
| Menu der følger med når man scroller Fra : Lars Klingenberg |
Dato : 15-05-02 15:46 |
|
Hi,
Jeg har et lille script (se herunder), der flytter min menu, når der
scrolles (dejligt dansk ord). Der opstår dog et problem, når menuen er
højere end skærmbilledet: menuen hopper op og ned og man kommer aldrig i
nærheden af at se hvad der sker nederst på menuen. Jeg ved ikke om det kan
lade sig gøre at modificere scriptet, således at menuen bliver stående hvis
menuen er højere end skærmbilledet....? Er der nogen der kan hjælpe mig -
evt. med et bedre script, der tager højde for det...
/Lars
Script:
function setVariables() {
if (navigator.appName == "Netscape") {
v=".top=";
dS="document.";
sD="";
y="window.pageYOffset";
}
else {
v=".pixelTop=";
dS="";
sD=".style";
y="document.body.scrollTop";
}
}
function checkLocation() {
object="object1";
yy=eval(y);
eval(dS+object+sD+v+yy);
setTimeout("checkLocation()",10);
}
| |
Jakob Andersen (15-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 15-05-02 16:11 |
|
"Lars Klingenberg" <lklingenberg@lknet.dk> skrev i en meddelelse
news:3ce274d3$0$11934$edfadb0f@dspool01.news.tele.dk...
> Jeg har et lille script (se herunder), der flytter min menu, når der
> scrolles (dejligt dansk ord). Der opstår dog et problem, når menuen er
> højere end skærmbilledet: menuen hopper op og ned og man kommer aldrig i
> nærheden af at se hvad der sker nederst på menuen. Jeg ved ikke om det kan
> lade sig gøre at modificere scriptet, således at menuen bliver stående
hvis
> menuen er højere end skærmbilledet....? Er der nogen der kan hjælpe mig -
> evt. med et bedre script, der tager højde for det...
Jeg forstår ikke hvad problemet er, kan vi ikke se et eksempel hvor
problemet opstår.
--
Jakob Andersen
| |
Lars Klingenberg (15-05-2002)
| Kommentar Fra : Lars Klingenberg |
Dato : 15-05-02 19:08 |
|
> Jeg forstår ikke hvad problemet er, kan vi ikke se et eksempel hvor
> problemet opstår.
Det kan ses på http://www.ifi.ku.dk/natfak/. Det er kun en "beta-version" af
siderne, så den virker formentlig kun i IE5.5+ (med andre ord: det er
klasket lidt hurtigt sammen...). Vælg Uddannelserne (venstre menu) -> Idræt
(højre menu) og klik på alle de fremhævede menupunkter i boksen til højre.
Efterhånden som menuen folder sig ud bliver den højere og højre og på et
tidspunkt fylder den mere en browservinduet (med mindre man har en profan
stor skærm og en ulækker skærmopløsning). Forsøger man et scrolle ned til
menuens sidste punkter flytter menuen sig. Menuen skal flytte sig, men hvis
menuen er højere end vinduet vil jeg helst have at den bare bliver stående.
Ja, jeg ved det. Det er frames (uargh), men det er jeg desværre ikke herre
over...
/Lars
| |
Jakob Andersen (15-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 15-05-02 22:10 |
|
"Lars Klingenberg" <lklingenberg@lknet.dk> wrote in message
news:3ce2a41e$0$18605$edfadb0f@dspool01.news.tele.dk...
> Det kan ses på http://www.ifi.ku.dk/natfak/. Det er kun en "beta-version"
af
> siderne, så den virker formentlig kun i IE5.5+ (med andre ord: det er
> klasket lidt hurtigt sammen...). Vælg Uddannelserne (venstre menu) ->
Idræt
> (højre menu) og klik på alle de fremhævede menupunkter i boksen til højre.
Nu når du alligevel er igang med frames hvorfor laver du så ikke blot menuen
i en frame også?
--
Jakob Andersen
| |
Lars Klingenberg (16-05-2002)
| Kommentar Fra : Lars Klingenberg |
Dato : 16-05-02 08:03 |
|
> Nu når du alligevel er igang med frames hvorfor laver du så ikke blot
menuen
> i en frame også?
Det kunne man mene - og det ville være klart det nemmeste. Jeg vil dog helst
undgå flere - ellers bliver det jo et helt patchwork med en frame i hver
side og en i toppen... Også fordi jeg nødigt vil have en rulle-fætter mellem
teksten og menuen i højre side.
/Lars
| |
Jakob Andersen (16-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 16-05-02 11:45 |
|
"Lars Klingenberg" <lklingenberg@lknet.dk> skrev i en meddelelse
news:3ce359df$0$51119$edfadb0f@dspool01.news.tele.dk...
> Det kunne man mene - og det ville være klart det nemmeste. Jeg vil dog
helst
> undgå flere - ellers bliver det jo et helt patchwork med en frame i hver
> side og en i toppen... Også fordi jeg nødigt vil have en rulle-fætter
mellem
> teksten og menuen i højre side.
Ok, jeg skal når jeg kommer hjem idag prøve at lave en "hold mig fast" menu
der tager højde for indholdet.
--
Jakob Andersen
| |
Lars Klingenberg (16-05-2002)
| Kommentar Fra : Lars Klingenberg |
Dato : 16-05-02 12:35 |
|
> Ok, jeg skal når jeg kommer hjem idag prøve at lave en "hold mig fast"
menu
> der tager højde for indholdet.
You're a darling
| |
Jakob Andersen (16-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 16-05-02 21:48 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:ac02t7$5ju$2@sunsite.dk...
> Ok, jeg skal når jeg kommer hjem idag prøve at lave en "hold mig fast"
menu
> der tager højde for indholdet.
Så nu er jeg kommet hjem, men det tog lige lidt længere tid end jeg troede
at få den crossbrowser kompatibel. Så nu har jeg puklet i en time så nu
håber jeg at du kan bruge den, som du kan se har jeg lidt planer om
forbedringer så det ikke hakker så når man scroller:
< http://www.advice.dk/jakob/scrollmenu/>
--
Jakob Andersen
| |
Lasse Reichstein Nie~ (16-05-2002)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 16-05-02 22:27 |
|
"Jakob Andersen" <jakob@effectus.dk> writes:
> Så nu er jeg kommet hjem, men det tog lige lidt længere tid end jeg troede
> at få den crossbrowser kompatibel.
Den virker også i Opera 6.02, dog forsvinder formateringen af menuen
(border og background).
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgment merely degrades the spirit divine.'
| |
Jakob Andersen (16-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 16-05-02 22:51 |
|
"Lasse Reichstein Nielsen" <lrn@infimum.dk> wrote in message
news:k7q3vl5o.fsf@infimum.dk...
> Den virker også i Opera 6.02, dog forsvinder formateringen af menuen
> (border og background).
Sjovt at den ikke virker i Opera 6.01.
--
Jakob Andersen
| |
Lasse Reichstein Nie~ (16-05-2002)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 16-05-02 22:59 |
|
Lasse Reichstein Nielsen <lrn@infimum.dk> writes:
> "Jakob Andersen" <jakob@effectus.dk> writes:
>
> > Så nu er jeg kommet hjem, men det tog lige lidt længere tid end jeg troede
> > at få den crossbrowser kompatibel.
>
> Den virker også i Opera 6.02, dog forsvinder formateringen af menuen
> (border og background).
Ok, dette er hvis Opera ikke er sat op til at sige at den er IE.
Hvis den er det, så er document.all defineret, og du tror den er ie,
og det virker ikke.
Det er linien objElem.style.height = "auto";
der ødelægger formatteringen af menuen når Opera siger at den er Opera
eller Netscape. Hvorfor kan jeg ikke sige :)
Håber det hjælper
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgment merely degrades the spirit divine.'
| |
Jakob Andersen (16-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 16-05-02 23:11 |
|
"Lasse Reichstein Nielsen" <lrn@infimum.dk> wrote in message
news:g00rvjob.fsf@infimum.dk...
> Ok, dette er hvis Opera ikke er sat op til at sige at den er IE.
> Hvis den er det, så er document.all defineret, og du tror den er ie,
> og det virker ikke.
Ahh, jeg havde lige glemt at min Opera stod til IE, men det skulle være
fikset nu.
> Det er linien objElem.style.height = "auto";
> der ødelægger formatteringen af menuen når Opera siger at den er Opera
> eller Netscape. Hvorfor kan jeg ikke sige :)
Det er et fix til Netscape6 for at man kan aflæse højden af et element uden
at den er defineret, og det virker åbenbart ikke i Opera, men nu har jeg
lige fikset det.
Så nu virker den i min Opera 6.01 ligegyldig hvad den identificerer sig som
--
Jakob Andersen
| |
Lars Klingenberg (16-05-2002)
| Kommentar Fra : Lars Klingenberg |
Dato : 16-05-02 23:16 |
|
> Så nu er jeg kommet hjem, men det tog lige lidt længere tid end jeg troede
> at få den crossbrowser kompatibel. Så nu har jeg puklet i en time så nu
> håber jeg at du kan bruge den, som du kan se har jeg lidt planer om
> forbedringer så det ikke hakker så når man scroller:
Er du gal et godt stykke arbejde! Og, ja, jeg kan se at du stadig har nogle
ideer til forbedringer. Herligt!
Den med Opera er jeg også stødt på med det simple script jeg brugte. Det er
egentlig underligt, da Opera jo burde understøtte js. Nå, pyt - menuen vises
og det er hovedsagen. I øvrigt gør det samme fænomen sig gældende i NN 4.7 -
her vises menuen også, men den følger ikke "rulningen".
Men ellers ser det jo ud til at virke fint. Tusind TAK!
Btw: der er en lille fejl på din side: du mangler er / i afslutningen på det
sidste script i head. Der står <script> i stedet for </script>.
/Lars Klingenberg
| |
Jakob Andersen (16-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 16-05-02 23:45 |
|
"Lars Klingenberg" <lklingenberg@lknet.dk> wrote in message
news:3ce42fdf$0$97294$edfadb0f@dspool01.news.tele.dk...
> Den med Opera er jeg også stødt på med det simple script jeg brugte.
Jeg har rettet til så det burde virke i Opera
> I øvrigt gør det samme fænomen sig gældende i NN 4.7 -
> her vises menuen også, men den følger ikke "rulningen".
Den følger fint rulningen i min Netscape 4.79
> Btw: der er en lille fejl på din side: du mangler er / i afslutningen på
det
> sidste script i head. Der står <script> i stedet for </script>.
Ok, har jeg også lige rettet.
| |
Lasse Reichstein Nie~ (17-05-2002)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 17-05-02 00:28 |
|
"Jakob Andersen" <jakob@effectus.dk> writes:
> "Lars Klingenberg" <lklingenberg@lknet.dk> wrote in message
> news:3ce42fdf$0$97294$edfadb0f@dspool01.news.tele.dk...
> > Den med Opera er jeg også stødt på med det simple script jeg brugte.
>
> Jeg har rettet til så det burde virke i Opera
Det gør det. Jeg sad og kiggede på koden, og efter en reload stod der
pludseligt noget med opera i den :)
Jeg sad og kiggede lidt på hvordan det virkede, og prøvede at lave min
egen variant (som ikke tager højde for om højden af vinduet er mindre
end af menuen, godt tænkt!).
En relativ nem måde at lave en forsinket og blødere scroll på er
at finde den nuværende top-position af boxen og den ønskede, og
så kun flytte halvdelen af vejen hver gang. Noget i stil med:
if (nuHoejde != korrHoejde+elemYpos) {
objStyle.top = ((korrHoejde+elemYpos)+parseInt(nuHoejde))/2 + suffix;
window.setTimeout( "FikserElement()", 20);
}
else
window.setTimeout( "FikserElement()", 100);
(jeg sætte også opdateringshastigheden op imens så det ser mere
flydende ud, suffix er "px" hvis det er nødvendigt, objStyle er
objElem eller objElem.style efter behov :).
Jeg fik det ikke til at virke i IE eller Mozilla (ej den store
javascript haj:), men jeg synes det var nydeligt i Opera og NN4.08.
Håber det kan bruges,
/L 'alt det arbejde fordi nogle browsere ikke forstår position:fixed :)'
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgment merely degrades the spirit divine.'
| |
Jakob Andersen (17-05-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 17-05-02 07:13 |
|
"Lasse Reichstein Nielsen" <lrn@infimum.dk> wrote in message
news:bsbfvfk3.fsf@infimum.dk...
> Jeg fik det ikke til at virke i IE eller Mozilla (ej den store
> javascript haj:), men jeg synes det var nydeligt i Opera og NN4.08.
Det kan vist betegnes som den omvendte verden
> Håber det kan bruges,
Klart.
> /L 'alt det arbejde fordi nogle browsere ikke forstår position:fixed :)'
Ja, det er frygteligt, ikke?
--
Jakob Andersen
| |
|
|