"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.'