Avatar billede kimlarsen1978 Nybegynder
05. juni 2004 - 13:46 Der er 14 kommentarer og
1 løsning

Problemer med placering af div

Hejsa
Jeg vil gerne have denne DIV placeret 140px fra toppen og i midden af skærmen uanset hvilken skærmstørrelse brugeren her:
Mit forsøg ser sådan her ud:
-------------
<DIV ID="favoritDIV" style="position: absolute; center: top: 140; visibility: hidden; width: 250; height: 71">
----------------
Avatar billede roenving Novice
05. juni 2004 - 13:52 #1
<DIV ID="favoritDIV" style="position: absolute; top: 140px; left: 50%; margin-left: -125px; visibility: hidden; width: 250px; height: 71px;">

-- du skal huske at sætte enheder på, for det er kun i IE, du kan regne med, at det gættes til at være pixels !-)
Avatar billede kimlarsen1978 Nybegynder
05. juni 2004 - 13:55 #2
Super - det virker 100%
Takker
Avatar billede roenving Novice
05. juni 2004 - 13:57 #3
Velbekomme '-)
Avatar billede kimlarsen1978 Nybegynder
05. juni 2004 - 17:49 #4
Øhh
der er et lille problem til...

Hvis man er scollet langt ned på en side på kommer boksen frem 140 px fra toppen af siden og ikke fra toppen af browseren - det betyder at er man scollet over 140px ned så kan man ikke se at boksen kommer frem...

Hvordan løser jeg det?
Avatar billede roenving Novice
05. juni 2004 - 20:43 #5
Hrm ...

Det så zq mærkeligt ud, for IE/Windows understøtter ikke position:fixed, som løser problemet i andre browsere, men den ville heller ikke svare på scrollTop, som ellers skulle være den rigtige værdi at lægge til ?-)

Men nogenlunde sådan virkede det, men ikke præcist ...

<script language="javascript" type="text/javascript">
var ie = (document.all)?true:false;
var dt = new Array();
function init(){
  if(ie){
    d = document.getElementsByTagName('DIV');
    for(i=0;d.length>i;i++){
      if(d[i].style.position=='fixed'){
        d[i].style.position='absolute';
        dt[d[i].id] = parseInt(d[i].style.top);
        alert(d[i].id)
      }
    }
  }
}
function showDiv(id){
  d = document.getElementById(id);
  if(ie){
    d.style.top = dt[id] + document.body.scrollHeight - screen.availHeight + 190 + 'px';
  }
  d.style.visibility='visible';
}
</script>

<body onload="init()">

onclick="showDiv('favoritDIV')"

-- og de 190 skal sikkert være forskelligt efter folks aktuelle browser-indstillinger !-)
Avatar billede roenving Novice
05. juni 2004 - 20:44 #6
-- og der er en alert, som ikke blev fjernet kan jeg se ...
Avatar billede kimlarsen1978 Nybegynder
05. juni 2004 - 21:44 #7
Jeg for en fejl på "Ugyldigt argument" på  denne linie:
-----------------
d.style.top = dt[id] + document.body.scrollHeight - screen.availHeight + 190 + 'px';
------------------
og når jeg kører init() på onload får jeg fejlen objekt forventes
Avatar billede roenving Novice
05. juni 2004 - 22:17 #8
Jeg glemte at gøre opmærksom på, at du så skal sætte position:fixed; på diven, for det er det, som trigger init-tingene ...

Har du fjernet alerten ?-)

Jeg startede nemlig med den samme fejl, som du får, så derfor alerten i init()-funktionen, som skulle hjælpe mig til at finde fejlen ...

Men hvis du får en fejl onload, vil der selvfølgelig også være fejl, når du kører standard-koden, for så er init() jo ikke afviklet ordentligt ...

-- så i hvilken linje får du fejl der ?o]

-- men hvis det kun er een eneste div kan du sætte de 140 ind i stedet for dt[id] !-)
Avatar billede roenving Novice
05. juni 2004 - 22:47 #9
-- og jeg glemte også at gøre opmærksom på, at denne type løsning bare vil placere div'en på et nyt fast sted i forhold til dokumentet ,-|
Avatar billede kimlarsen1978 Nybegynder
06. juni 2004 - 12:16 #10
Okay - nu får jeg ingen fejl - men det virker lidt mærkeligt...

Boksen kommer nu frem langt nede på siden - og det er uanset om jeg er scollet helt i top eller i bund. Så nu er problemet omvendt - står man i toppen af siden kommer boksen frem så langt nede at man ikke kan se den...
Avatar billede kimlarsen1978 Nybegynder
06. juni 2004 - 12:31 #11
Jeg kunne selvfølgelig også bare lave en popup... Hvor boksen kommer frem i
Avatar billede kimlarsen1978 Nybegynder
06. juni 2004 - 13:15 #12
kan man ikke bare få en div placeret midt på skærmen?
Avatar billede kimlarsen1978 Nybegynder
06. juni 2004 - 14:02 #13
Nu har jeg lavet det med en popud, så bliver boksen da ikke væk for brugerne, men det ville stadig være dejligt at vide om det kan lade sig gøre at placerer en DIV midt på skræmen - lige som nu en alert altid kommer præcist på midten
Avatar billede kimlarsen1978 Nybegynder
14. august 2004 - 21:43 #14
Jeg fandt en løsning :-)
Tak for din hjælp
Avatar billede roenving Novice
14. august 2004 - 21:48 #15
-- og jeg takker for point ;~}
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