03. september 2012 - 15:25Der er
12 kommentarer og 1 løsning
Forskellig i chrome end firefox
Hej jeg er igang med at lave en hjemmeside med en scroll funktion. Og det virker egentlig fint på stort set alle siderne, men der er en side den ikke vil scrolle helt ned på. Og det er kun i chrome, det virker fint i firefox.
Her er linket: www.wearecrunch.dk/gammelsjuf Og så klik på sponsor, så kan du se at det kun virker i firefox og ikke chrome.
Her er HTML koden for det menupunkt. Men jeg ved ikke om det kun har noget at gøre med min html kode:
Såvidt jeg kan se, virker scrollbaren vist kun i IE =)
Hvorfor scriptet regner forkert i alle andre browsere ved jeg ikke. Du må prøve at alert'e dig frem gennem jquery.scroll.js for at finde stedet, hvor det går galt
Firefox 14.0.1/Win7 Pro viste hos mig kun halvdelen af øverste LI-element tidligere på dagen. I mellemtiden er den blevet opdateret til version 15 - og nu virker det.
Jeg mener helt elementær fejlfinding. Skriv en alert i koden, så den viser indholdet af en bestemt variabel under afvikling af koden. Indeholder den det ventede, prøver du den næste variabel, osv.
På et tidspunkt støder du ind i stedet, hvor det går galt. Hvor hurtigt det sker afhænger af, hvor systematisk, du er
og ville jeg så skulle teste det i chrome fordi det er den eneste browser det ikke virker i?
Jeg synes bare det er underligt at det kun er chrome det ikke virker i hvis det er noget i javascripten. Fordi selve scrollen fejler jo ikke noget hvis det virker alle andre steder vel?
Men tror du ikke det er noget der er i html'en eller css'en?
Giver det mening at det ligger i selve scroll javascript siden, hvis det kun vedrøre en side og så endda i chrome, men ingen andre steder?
Er det ikke fordi chrome og firefox og de andre browsere indlæser HTML og css forskelligt, men burde javascript ikke virke alle steder hvis det virker et sted?
Det er rystende ligegyldigt, hvad nogen tror. Det gælder om at få viden om, hvad der er galt *o)
Jeg forstår ikke lige, hvad du mener med "og så endda i Chrome, men ingen andre steder". Som sagt fejler koden i Opera, Safari og Chrome - eller 60% af 'de fem store'.
Der er så vidt jeg kan se ikke noget galt med din HTML/CSS. Det er dog helt tydeligt, at browserne tolker din kode forskelligt - og scriptet derfor behandler koden forskelligt.
Så har du to muligheder:
1) Du kan sætte dig ned og kikke mystificeret på koden.
2) Du kan prøve at finde ud af, hvad det er for en forskellighed, der er skyld i fejlen.
Der er ingen, der siger, der er en egentlig fejl i scriptet, men det er tydeligt, at det behandler elementerne forskelligt i forskellige browsere.
Når du har fundet ud af, hvad det er, der tolkes forskelligt, kan du have en mening om, hvor fejlen ligger.
Derudover er der masser af de scripts, du finder til jQuery, som er skrevet af folk, som ikke kan JavaScript - og som derfor skodder slemt
Jeg har søgt lidt på nettet efter mit problem, og tror muligvis jeg har fundet et sted hvor en mulig løsning står.
Men jeg er lidt lost, har du mulighed for at hjælpe mig :) Det ville jeg sætte pris på.
Her er hvad han skriver:
Spørgsmål:
I've got a simple setup to allow a "help"-style window to be loaded and scrolled to a particular point on the page. More or less the code looks like this:
var target = /* code */; target.offsetParent().scrollTop(target.offset().top - fudgeValue);
The target of the scroll and the fudge value are determined by a couple of hints dropped on the page, and I'm having no problems with that part of this mechanism anywhere. In Firefox and IE8, the above code works exactly like I want: the scrolled box (in this case, the page body) correctly scrolls the contained stuff to the right point in the window when it's told to do so.
In Chrome and Safari, however, the call to scrollTop() apparently does nothing at all. All the numbers are OK, and the target refers to the right thing (and the offsetParent() is indeed the body element), but nothing at all happens. As far as I can tell from googling around, this is supposed to work. Is there something funny about the renderer under Safari and Chrome?
This is jQuery 1.3.2 if that matters.
Svar:
Yeah, there appears to be a bug in Chrome when it comes to modifying the body, trying to make it into an offsetParent. As a work-around, I suggest you simply add another div to wrap the #content div, and make that scroll:
html, body { height: 100%; padding: 0; } html { width: 100%; background-color: #222; overflow: hidden; margin: 0; } body { width: 40em; margin: 0px auto; /* narrow center column layout */ background-color: white; position: relative; /* allow positioning children relative to this element */ } #scrollContainer /* wraps #content, scrolls */ { overflow: auto; /* scroll! */ position:absolute; /* make offsetParent */ top: 0; height: 100%; width: 100%; /* fill parent */ } #header { position: absolute; top: 0px; height: 50px; width: 38.5em; background-color: white; z-index: 1; /* sit above #content in final layout */ } #content { padding: 5px 14px 50px 5px; }
svar igen:
Jeg håber du har mulighed for at hjælpe mig med dette scroll problem. :) pÅ forhånd tak
Prøv at finde et script, der virker i stedet. Problemet er ikke Safari og Chrome. Problemet er, at 'udvikleren', der har skrevet scriptet, ikke kan kode.
Er der den slags problemer i en kode, er de sjældent alene *o)
Så mangler du kun at rette fejlen. Den opstår formodentlig ved, at du kalder scriptet for tidligt - inden indholdet i scroll-området er loaded i browseren.
Det kan under ingen omstændigheder være meningen, man på den måde skal fortælle JS, hvor højt indholdet er. Det bør scriptet naturligvis selv kunne finde ud af i 2012.
Vi har også i denne tråd diamentral forskellig opfattelse af, hvad ordet "virker" dækker *o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.