/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
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



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste