/ 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
Javascript brugt til scroll
Fra : Thomas Lindgaard


Dato : 16-11-03 11:29

Hejsa

http://www.tpfurniture.dk/version2/udstillinger.php har jeg sat noget
javascript ind så man kan scrolle i teksten ved at holde musen hen over to
små pile. Det fungerer fint så længe der ikke er nogen doctype-angivelse på
siden. Hvis jeg sætter en doctype ind, så fungerer det stadig fint i IE men
ikke i Mozilla Firebird.

Er der en haj der kan fortælle mig hvilke dele af scriptet der ikke er "pæn"
kode? (det er noget jeg har downloadet - personligt hader jeg at rode i
javascript :))

Mvh.
/Thomas



 
 
Lasse Reichstein Nie~ (16-11-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 16-11-03 12:57

"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> writes:

> På http://www.tpfurniture.dk/version2/udstillinger.php har jeg sat noget
> javascript ind så man kan scrolle i teksten ved at holde musen hen over to
> små pile.

Du synes sikkert det er pænt, men det er ganske besværligt at bruge
for folk uden mus, for folk med mus tillader det ikke at man bruger
scroll-wheel, man kan ikke bestemme hastigheden, og koden er, som du
ser, besværlig at få rigtigt. Med usability-øjne er det en katastrofe.
Brug dog CSS-egenskaben "overflow:auto;" og få en scrollbar, og så kan
du style den scrollbar med CSS hvis den ikke passer til siden ellers.

> Det fungerer fint så længe der ikke er nogen doctype-angivelse på
> siden. Hvis jeg sætter en doctype ind, så fungerer det stadig fint i IE men
> ikke i Mozilla Firebird.

Umiddelbart gæt: du glemmer at putte enheder (typisk "px") på de
CSS-egenskaber du sætter.

Det ser også rædselsfuldt ud i Opera 7.

Har du et link til en side *med* DOCTYPE (altså den side er *ikke* virker)?

> Er der en haj der kan fortælle mig hvilke dele af scriptet der ikke er "pæn"
> kode? (det er noget jeg har downloadet - personligt hader jeg at rode i
> javascript :))

Så lad være. Det kan klares meget bedre med CSS.
Ok, lad mig kigge på koden:

- Første advarselstegn:
function lib_bwcheck(){ //Browsercheck (needed)
At gætte browseren ud fra nogle mere eller mindre tilfældige egenskaber,
som andre browsere kan efterligne (og gør det) er ikke stabil programmering.

Jeg ser fx at browsertjekket ikke genkender Opera over version 5. Jeg bruge
Opera 7, som, så vidt jeg kan se, bliver genkendt som både opera5 og ns6.
Det forklarer måske hvorfor det ser ud som om den står og hopper mellem
to forskellige måder at scrolle på.

Logikken i browsertjekket viser en forfatter der ikke forstår Javascript.
Der bruges "1" og "0" i stedet for "true" og "false", og man ser endda
konstruktionen
(betingelse)?1:0
som mindst lige så godt kunne nøjes med at være
betingelse


Personligt ville jeg mene at dette browsertjek er diskvalificerende
for koden, men jeg stiller også krav til min kode.

- næste advarselstegn:
eval(this.obj + "=this") ;
Man skal ikke bruge eval! Der er undtagelser, men de er sjældne og
specifikke, og de optræder med altovervejende sandsynlighed ikke i
almindeligt web-design. Eval er til gengæld langsom og
ressourcekrævende (den starter en compiler hver gang den kører) og gør
det svært at finde fejl.

- Det jeg regner med er problement:
Ret disse linjer
this.css.left=this.x;
this.css.top=this.y;
til
this.css.left=this.x+"px";
this.css.top=this.y+"px";

Ok, har lige testet, og *bingo*, det var det!

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Thomas Lindgaard (16-11-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 16-11-03 15:20

Davs

> Du synes sikkert det er pænt, men det er ganske besværligt at bruge
> for folk uden mus, for folk med mus tillader det ikke at man bruger
> scroll-wheel, man kan ikke bestemme hastigheden, og koden er, som du
> ser, besværlig at få rigtigt. Med usability-øjne er det en katastrofe.
> Brug dog CSS-egenskaben "overflow:auto;" og få en scrollbar, og så kan
> du style den scrollbar med CSS hvis den ikke passer til siden ellers.

Jeg er enig i alt sammen - det er bare ikke min egen side, så det er ikke
mig der har den afgørende stemme...

> > Det fungerer fint så længe der ikke er nogen doctype-angivelse på
> > siden. Hvis jeg sætter en doctype ind, så fungerer det stadig fint i IE
men
> > ikke i Mozilla Firebird.
>
> Umiddelbart gæt: du glemmer at putte enheder (typisk "px") på de
> CSS-egenskaber du sætter.
>
> Det ser også rædselsfuldt ud i Opera 7.

Garanteret :) - jeg er ikke nået til at teste i andet en IE og Firebird.

> Har du et link til en side *med* DOCTYPE (altså den side er *ikke*
virker)?

Ikke online - men det kan jeg da finde frem.

> > Er der en haj der kan fortælle mig hvilke dele af scriptet der ikke er
"pæn"
> > kode? (det er noget jeg har downloadet - personligt hader jeg at rode i
> > javascript :))
>
> Så lad være. Det kan klares meget bedre med CSS.
> Ok, lad mig kigge på koden:

[snip - en kodegennemgang og en løsning]

Jeg har lige indsat din løsning i koden og tilføjet en doctype og det
fungerer jo dejligt :)

.... men som sagt: Det er ikke mig med magten i dette foretagende, men jeg
vil fremlægge problemerne for hr. Boss.

Mvh.
/Thomas



Benny Nissen (16-11-2003)
Kommentar
Fra : Benny Nissen


Dato : 16-11-03 20:30


"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in message
news:bp7jhb$quf$1@sunsite.dk...
> Hejsa
>
> På http://www.tpfurniture.dk/version2/udstillinger.php

Problemet er jo også, at hvis man ikke har javasacript slået til, så er
feltet bare tomt.

Det er da en håbtløst gammel side
Der står nederst på siden: "Sidst opdateret torsdag den 1. januar 1970"

--
Benny



Thomas Lindgaard (20-11-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 20-11-03 09:48

> Problemet er jo også, at hvis man ikke har javasacript slået til, så er
> feltet bare tomt.

Mnøeh... man kan vel bare kun se det øverste af teksten.

> Det er da en håbtløst gammel side
> Der står nederst på siden: "Sidst opdateret torsdag den 1. januar 1970"

Hehe - jeg skal vist lige have kigget lidt på den datomarkering. Det lyder
som om jeg skal lave den i PHP i stedet :)

Mvh.
/Thomas



Benny Nissen (20-11-2003)
Kommentar
Fra : Benny Nissen


Dato : 20-11-03 09:59


"Thomas Lindgaard" <thomas@it-snedkeren.BLACK_HOLE.dk> wrote in message
news:bphv4c$217$1@sunsite.dk...
> > Problemet er jo også, at hvis man ikke har javasacript slået til, så er
> > feltet bare tomt.
>
> Mnøeh... man kan vel bare kun se det øverste af teksten.

Nej, i Opera ser jeg _ingen_ tekst. Se:
http://bennynissen.dk/opera.gif


> > Det er da en håbtløst gammel side
> > Der står nederst på siden: "Sidst opdateret torsdag den 1. januar 1970"
>
> Hehe - jeg skal vist lige have kigget lidt på den datomarkering. Det lyder
> som om jeg skal lave den i PHP i stedet :)

Tja, der går et eller andet galt med 'last updated'

--
Benny



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

Månedens bedste
Årets bedste
Sidste års bedste