Avatar billede learner Praktikant
04. august 2005 - 19:54 Der er 21 kommentarer og
1 løsning

vindue bredde forskel i IE og mozilla

Hej jeg har denne funktion:
function getWindowWidth(){
  return window.innerWidth ? window.innerWidth : document.body.offsetWidth;
}

Mit problem er i mozilla. Og kun når scrollbaren er fremme i højre side. funktionen returnerer den samme width både når scrollbaren er fremme og når den er væk.

Jeg har os prøvet den her:(samme problem)
function getWindowWidth(){
return window.outerWidth ? window.outerWidth : document.body.clientWidth;
}

Håber nogen har en løsning/forklaring :o)
Tak
Avatar billede learner Praktikant
04. august 2005 - 20:01 #1
ps du kan se det på http://find-travel-agents.com
læg mærke til at popdownmenuerne kommer frem lidt til højre for teksten når scrollbaren er fremme. Altså i mozilla :o)
Avatar billede busschou Praktikant
04. august 2005 - 21:39 #2
der er ikke andet at gøre end at trække en scrollbars bredde fra uanset hvad
hmm ca 20px måske
Avatar billede busschou Praktikant
04. august 2005 - 21:43 #3
grunden er jo så i øvrigt at scrollbaren er fast i ie hvorved dens indre bredde altid er  excl scrollbaren. I ff er den ikke fast, og den indgår derfor i den indre bredde
Avatar billede busschou Praktikant
04. august 2005 - 21:44 #4
og det er så noget browser fabrikanterne har fundet på, så eneste løsning jeg kender til er at lave sit design til at der altid er en scrollbar så det ikke rykker sig
Avatar billede learner Praktikant
04. august 2005 - 22:30 #5
citat: eneste løsning jeg kender til er at lave sit design til at der altid er en scrollbar så det ikke rykker sig

Måske en god ide :o)
husker du hvordan man gør i css
body{scroll:????;} eller noget
Avatar billede olebole Juniormester
05. august 2005 - 00:29 #6
<ole>

Prøv denne her:
window.onload = function() {
    var str = "document.body.offsetWidth: "+document.body.offsetWidth+"\n";
    str += "document.documentElement.offsetWidth: "+document.documentElement.offsetWidth+"\n";
    str += "window.innerWidth: "+(window.innerWidth? window.innerWidth : "na")+"\n";
    alert(str);
}

- både med indhold, der ikke resulterer i en vandret scrollbar - og med indhold, der gør. Så vil du se, at dette må være løsningen, der giver samme resultat i IE, Mozilla og Opera (og sikkert flere):

function getWindowWidth(){
  return window.innerWidth ? window.innerWidth : document.documentElement.offsetWidth;
}

/mvh
</bole>
Avatar billede learner Praktikant
05. august 2005 - 00:33 #7
Ov :o)
Det er den lodrette scrollbar der giver problemet
Avatar billede learner Praktikant
05. august 2005 - 00:44 #8
jeg tror ik jeg forstår den funktion :o)
skriver den en ny funktion eller hvad?
Avatar billede olebole Juniormester
05. august 2005 - 00:52 #9
Der er to forskellige funktioner:
Den første er blot et test-eksempel.
Den anden en funktion, der returnerer vinduets indre bredde ens i de store browsere
Avatar billede learner Praktikant
05. august 2005 - 02:31 #10
Nåh ja okay :o)
Griner

Jeg har lige testet om det virker. Desværre oplever jeg det stadig i Mozilla.
Se evt her: http://find-travel-agents.com

Det forekommer når højre(lodrette) scrollbar er aktiv og nederste(vandrette) er inaktiv

Men tak fordi du forsøgte :o)
Håber du kigger på det igen :o)
Avatar billede learner Praktikant
05. august 2005 - 11:13 #11
Hey igen, det er både i IE og FF når lodret scrollbar er aktiv og vandret scrolbar er inaktiv
Avatar billede per1291 Nybegynder
05. august 2005 - 15:44 #12
Jeg har i anden sammenhæng fået anbefalet denne "indmad" til funktionen getWindowWidth:

return window.innerWidth ? window.innerWidth :
window.documentElement ? window.documentElement.offsetWidth :
document.body.offsetWidth;

Hilsen Per
Avatar billede learner Praktikant
05. august 2005 - 19:26 #13
Hej Per :o)
Det virker bedre i IE nu men FF er problemet stadig. æv æv. Der er nok ik noget enkelt at gøre ved det :o)
Avatar billede olebole Juniormester
05. august 2005 - 19:52 #14
Jamen, jeg er ikke sikker på, hvad det er, du skal bruge - det kommer anpå, hvad det skal bruges til  :)
Er du helt sikker på, det er bredden af browserens viewport, du ønsker? Hvad ønsker du, hvis body-elementet er bredere end browserens viewport? Body-elementets bredde - eller viewportens bredde?
Er det noget, der skal centreres i vinduet - og skal det så centreres i forhold til sidens bredde eller browserens indre bredde?
Avatar billede olebole Juniormester
05. august 2005 - 19:54 #15
- og jeg forstår naturligvis godt problemet med at bredden af den lodrette scrollbar driller  :)
Avatar billede learner Praktikant
05. august 2005 - 20:09 #16
viewportens bredde :o)
Avatar billede olebole Juniormester
05. august 2005 - 20:36 #17
document.documentElement.clientWidth giver dig bredden af vinduet - minus evt. scrollbar. Dog fratrækkes også IE's ghostede scrollbar
Avatar billede per1291 Nybegynder
06. august 2005 - 23:48 #18
Jeg tror at viewportens bredde i begge browsere kan angives ved

return document.body.clientWidth

Returstørrelsén er området inden for en eventuel scrollbar. Prøv. - Hilsen Per
Avatar billede olebole Juniormester
06. august 2005 - 23:55 #19
Nej, Per ... prøv så med en lang linje, der rager ud over vinduets bredde  :)

document.documentElement.clientWidth giver viewport'ens bredde
Avatar billede learner Praktikant
12. august 2005 - 08:53 #20
Nå, det kan nok ik lade sig gøre.. :o)
Avatar billede learner Praktikant
25. august 2005 - 21:34 #21
Umuligt at løse på en simpel måde og det er os ligegodt :o)

Tak for jeres indlæg :o)
Avatar billede roenving Novice
26. august 2005 - 02:06 #22
-- og jeg må da, på busschous og oleboles vegne, sige tak for hjælpen til at få fordrevet den alt for rigelige fritid, som spenderes på at hjælpe Ekspertens brugere !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester