26. september 2006 - 15:01
Der er
22 kommentarer og 1 løsning
Scroll funktion på div med ID uden Style
hej. jeg har et javascript, der scoller indholdet af en div. Og det virker fint - så længe jeg beholder style="bla bla" i mit div tag. Det jeg gerne ville var at flytte alle mine styles over i et stylesheet og derfor kun benytte mit divs ID. Så derfor spørgsmålet: Er der een der kender et scroll-script, der fungerer på ID og ikke på style?
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
26. september 2006 - 15:04
#1
hov - det er iøvrigt kun i IE, det ikke spiller - I firefox og safari fungerer det fint.
26. september 2006 - 15:06
#2
Du kan jo bruge style på dit div, med ID.. Eksempel: <style type="text/css"> #mitdiv { noget her } </style> og: <div id="mitdiv">noget indhold her</div>
26. september 2006 - 15:06
#3
Det har muligvis noget med denne browserdetection at gøre? var dom = document.getElementById ? true:false; var nn4 = document.layers ? true:false; var ie4 = document.all ? true:false;
26. september 2006 - 15:06
#4
det skulle være underordnet om det ex er: <div id="mitdiv"> #mitdiv { width: 300px; height: 300px; overflow: auto; } eller <div class="mitdiv"> .mitdiv { width: 300px; height: 300px; overflow: auto; }
26. september 2006 - 15:08
#5
hvis jeg fastholder mit div sådan her , virker det: <div id="contentClip" style="position: absolute; top: 100px; left: 400px; width: 350px; height: 440px; clip:rect(0px,350px,440px,0px); visibility: visible; z-index: 5; overflow: hidden;"> <div id="content"> Men jeg vil gerne have at mit div ser sådan ud: <div id="contentClip"> <div id="content">
26. september 2006 - 15:08
#6
powerduck> Husk at gøre brug af browserdetection i den rette rækkefølge, når du laver checket/IF-sætningerne.. Jeg mener at en eller flere browsere understøtter mere end 1 referencetype til elementer.. Eksempel document.getElementById og document.all..
26. september 2006 - 15:09
#7
<style type="text/css"> #contentClip { position: absolute; top: 100px; left: 400px; width: 350px; height: 440px; clip:rect(0px,350px,440px,0px); visibility: visible; z-index: 5; overflow: hidden; } </style> <div id="contentClip"> <div id="content">
26. september 2006 - 15:10
#8
mener du, thesurfer, at løsningen kan være at bytte rundt på de tre linier jeg har indsat ovenfor? - altså teste for IE først?
26. september 2006 - 15:11
#9
jeg er med på hvordan jeg får lagt mine styles ind i et stylesheet, men det er javascriptet, som jeg mistænker for at detecte elementer på siden efter styles istedet for efter ID'er
26. september 2006 - 15:12
#10
powerduck> Jeg kan desværre ikke huske række følgen.. Jeg prøvede det engang med browserne Opera, Mozilla FireFox, Netscape og Internet Explorer.. men kan ikke huske i hvilken rækkefølge det var..
26. september 2006 - 15:14
#11
Jeg har lige kigget mit script igennem og så vidt jeg kan se er det her den laver forskel på nn og ie function eventLoader(){ if(ie4){ // Up-arrow X and Y variables upL = document.all.up.style.pixelLeft; upT = document.all.up.style.pixelTop; // Down-arrow X and Y variables downL = document.all.down.style.pixelLeft; downT = document.all.down.style.pixelTop; // Scrollbar X and Y variables dragL = document.all.drag.style.pixelLeft; dragT = document.all.drag.style.pixelTop; // Ruler Y variable rulerT = document.all.ruler.style.pixelTop; // Height of content layer and clip layer contentH = parseInt(document.all.content.scrollHeight); contentClipH = parseInt(document.all.contentClip.style.height); } else if(nn4){ // Up-arrow X and Y variables upL = document.up.left; upT = document.up.top; // Down-arrow X and Y variables downL = document.down.left; downT = document.down.top; // Scrollbar X and Y variables dragL = document.drag.left; dragT = document.drag.top; // Ruler Y variable rulerT = document.ruler.top; // Height of content layer and clip layer contentH = document.contentClip.document.content.clip.bottom; contentClipH = document.contentClip.clip.bottom; } else if(dom){ // Up-arrow X and Y variables upL = parseInt(document.getElementById("up").style.left); upT = parseInt(document.getElementById("up").style.top); // Down-arrow X and Y variables downL = parseInt(document.getElementById("down").style.left); downT = parseInt(document.getElementById("down").style.top); // Scrollbar X and Y variables dragL = parseInt(document.getElementById("drag").style.left); dragT = parseInt(document.getElementById("drag").style.top); // Ruler Y variable rulerT = parseInt(document.getElementById("ruler").style.top); // Height of content layer and clip layer contentH = parseInt(document.getElementById("content").offsetHeight); contentClipH = parseInt(document.getElementById("contentClip").offsetHeight); document.getElementById("content").style.top = 0 + "px"; }
26. september 2006 - 15:14
#12
det der står ved nn4 - burde vel også virke for ie? eller hvad?
26. september 2006 - 15:19
#13
Det er ikke linierne i 26/09-2006 15:06:10 der skal være i en bestemt rækkefølge.. Det er dine IF-sætninger, som er linierne i 26/09-2006 15:14:13.. En simpel test: <div id="mitdiv">hello world</div> <script type="text/JavaScript" language="JavaScript"> var dom = document.getElementById ? true:false; var nn4 = document.layers ? true:false; var ie4 = document.all ? true:false; if (dom) { alert("dom: " + document.getElementById("mitdiv").innerHTML) } else if (nn4) { alert("nn4: " + document.layers["mitdiv"].innerHTML) } else if (ie4) { alert("ie4: " + document.all["mitdiv"].innerHTML) } </script> Det skal nok passe med, at jeg har taget fejl af "()" og "[]" i nn4 og ie4..
26. september 2006 - 15:28
#14
Jeg lavede lige testen, og fik følgende resultater: Resultater: Opera: dom, ie4 Mozilla FireFox: dom Internet Explorer: dom, ie4 Netscape: dom Hvis () og [] er korrekt brugt..
26. september 2006 - 15:29
#15
Jeg prøver lige uden () og []..
26. september 2006 - 15:34
#16
Jeg har fjernet div og tilhørende kode, så nu ser koden og resultatet sådan ud (samme resultat): <script type="text/JavaScript" language="JavaScript"> var dom = document.getElementById ? true:false; var nn4 = document.layers ? true:false; var ie4 = document.all ? true:false; if (dom) { alert("dom") } else if (nn4) { alert("nn4") } else if (ie4) { alert("ie4") } else alert("ingen af dem / ukendt browser / manglende understøttes") </script> <!-- Resultater: Opera: dom, ie4, Mozilla FireFox: dom Internet Explorer: dom, ie4 Netscape: dom -->
26. september 2006 - 15:35
#17
Hæ hæ det virkede sgu. Tak for hjælpen. theSurfer smider du et svar - så du an få nogle point!
26. september 2006 - 15:36
#18
Jeg undrer mig meget over at Netscape ikke sagde noget ved "nn4".. Rækkefølgen burde så være den omvendte, da de alle understøtter dom.. Dvs: nn4 = skulle fange Netscape men gør det ikke? ie4 = fanger Opera og Internet Explorer dom = fanger Opera, FireFox, Internet Explorer, FireFox
26. september 2006 - 15:37
#19
Ok :-) Hvilken rækkefølge brugte du?
26. september 2006 - 15:39
#20
ie til sidst - lige som dig.
26. september 2006 - 15:42
#21
Ahhh.. :-)
26. september 2006 - 15:42
#22
Takker for points :-)
28. september 2006 - 12:20
#23
Hvis en style er defineret i et stylesheet tilhører stylen selectoren i stylesheetet og ikke de elementer, som selectoren peger på ... -- og Netscape 6+ kan selvfølgelig ikke genkende nn4, da de ikke understøtter (i)layer-tag !-)
Vi tilbyder markedets bedste kurser inden for webudvikling