Javascript + Doctype != Bra kombination

Permalänk
Medlem

Javascript + Doctype != Bra kombination

<html> <head> ... /* Copyright (C) 1999 Thomas Brattli This script is made by and copyrighted to Thomas Brattli at www.bratta.com Visit for more great scripts. This may be used freely as long as this msg is intact! I will also appriciate any links you could give me. */ // Courtesy of SimplytheBest.net - http://simplythebest.net/scripts/ function checkBrowser(){ this.ver=navigator.appVersion this.dom=document.getElementById?1:0 this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; this.ie4=(document.all && !this.dom)?1:0; this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5) return this } bw=new checkBrowser() lstart=10 loop=true speed=250 pr_step=1 function makeObj(obj,nest){ nest=(!nest) ? '':'document.'+nest+'.' this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight this.newsScroll=newsScroll; this.moveIt=b_moveIt; this.x; this.y; this.obj = obj + "Object" eval(this.obj + "=this") return this } function b_moveIt(x,y){ this.x=x;this.y=y this.css.left=this.x this.css.top=this.y } function newsScroll(speed){ if(this.y>-this.scrollHeight){ this.moveIt(0,this.y-pr_step) setTimeout(this.obj+".newsScroll("+speed+")",speed) }else if(loop) { this.moveIt(0,lstart) eval(this.obj+".newsScroll("+speed+")") } } function newsScrollInit(){ oNewsCont=new makeObj('divNewsCont') oNewsScroll=new makeObj('divNewsText','divNewsCont') oNewsScroll.moveIt(0,lstart) oNewsCont.css.visibility='visible' oNewsScroll.newsScroll(speed) } onload=newsScrollInit; ... ... #divNewsCont { position: relative; width: 500px; height: 20px; overflow: hidden; top: 185px; left: 20px; clip: rect(0, 500px, 20px, 0); visibility: hidden; } #divNewsText { position: relative; top: 0; left: 0; } ... </head> <body> <!-- scroller start --> <div id="divNewsCont"> <div id="divNewsText"> Text........ </div> </div> <!-- scroller end --> </body> </html>

Det här exemplet funkar fint för mig. Men så fort jag lägger in en doctype i början av dokumentet så vill den inte scrolla texten :/ Testat 4.01, 1.0 Transitional/Strict

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

borde du inte ha <script type="text/javascript"></script>? eller?

Visa signatur

Server 1 - P2 233MHz 224MB RAM. | | Server 2/Laptop 1 - P3M 933MHz 256MB RAM. | | Laptop 2 - P4HT 3.2GHz 1024MB RAM. | | Laptop 3 - PM 1.86GHz 512MB RAM. | | Stationär 1 - P4 1.7GHz 256MB RAM. | | Stationär 2 - P2 400MHz 512MB RAM.

Permalänk
Medlem

Jag hoppas punkterna betyder att han klippt bort det, annars så är väl det (uppenbart) att något blir fel utan dem.

Visa signatur

Har bytt namn från: nulleman ~ Blogg: http://skorpion.se
MacBook Pro: 15.4' ~ 1.83GHz ~ 1512MB RAM ~ 80GB HDD
Medlem i signaturen blodtörstiga Appleanvändare

Permalänk
Medlem

Jag tror han har klippt bort det. Hur som helst är alla former av newsscroll skit och bör undvikas på alla sätt.

Permalänk
Medlem

Ja, självklart betyder ... bortklippt Sorry om jag inte skrev det.

AlfonsA: Lika skit som javascript är, vilket betyder att det ibland är användsbart.

Nu ser jag att scrollen fungerar på IE och Opera, men inte i Safari eller FF. Whaaaj?

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

Kanske det.... Jag är inne i en period av agg mot alla formet av oönskad rörelse på hemsidor. Men du har såklart rätt; ignorera posten ovan.

Testa att ändra "this.css.left=this.x" till "this.style.left = this.x" tror att det är den officiella varianten. Men jag är inte säker.

Permalänk
Medlem

Har du kollat i felkonsolen? Tools > JavaScript Console, i Fx.

Permalänk
Medlem

Testa att lägga javascripten i en egen fil istället som du sen inkluderar

Permalänk
Medlem

AlfonsA: Ah, ska genast testas!

Malesca: Hmm, jag får "Error in parsing value for property 'top': Declaration dropped", låter som det har att göra med det rörande lagret. Skall undersöka.

mucha: Jag har det. Tyckte det var lättare för er att se såhär bara.

Edit: Jag fixade det ! Efter mycket om och men så gick det ^^
Problemet var att förskjutningen angavs i formatet "[xx]" och inte "[xx]px"

Det funkar nu på FF 1.5, IE 6, Safari 2 och Opera 8 - Jag är nöjd!

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'

Permalänk
Medlem

haha, just ja, borde man ha sett... Ett tips till vidare kodning: funktionen parseint gör om ett värde angivet i pixlar, t ex "10px" till ett heltal, dvs, "10". Kan vara praktiskt i sammanhanget.

Permalänk
Medlem

Mm. Nu har jag aldrig kodat javascript, men jag får se om jag tar upp den jakten.

Visa signatur

Swec @ 2001 / Chalmerist - Javisst!
'Den som har flest prylar när han dör vinner!'