Avatar billede sbm Nybegynder
11. december 2003 - 13:26 Der er 3 kommentarer og
1 løsning

Skjule de dele af dokument der går udenfor skærm

Dette er nærmest et tankeeksperiment. Jeg aner ikke om det kan lade sig gøre. Jeg har i hvert fald ikke set det gjort.

Hvis jeg har et relativt langt dokument med tekst. I hvert fald mere end der kan stå på skærmen.

Rundt om hvert afsnit har jeg et <div> tag som gør at jeg kan manipulere hele dette afsnit.

Hvis et <div> tag række udenfor skærmen - altså halvt inde på skærmen og halvt udenfor - skal hele det div-tag skjules. Man kan altså ikke få et halvt afsnit at se.

Hvis man scroller ned, så man får bunden med, vil hele afsnittet blive synligt.

Hvordan skal det gøres?
Avatar billede Slettet bruger
11. december 2003 - 18:56 #1
Det her er kun et illustrerende eksempel, der udelukkende virker i IE5+.
Men måske kan en anden, der har lidt bedre tid end mig, bygge det færdigt:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
function tjekdivs() {
  arr = document.getElementsByTagName("div");
  for (i = 0; i < arr.length; i++) {
    y = 0;
    obj = arr[i];
    while (obj.parentElement != null) {
      y += obj.offsetTop;
      obj = obj.parentElement;
    }
    arr[i].style.visibility = (document.body.scrollTop > y || (document.body.scrollTop + document.body.clientHeight) < (y + arr[i].offsetHeight)) ? "hidden" : "visible";
  }
}
</script>
</head>
<body onscroll="tjekdivs();">
<div style="background-color: #FFFFCC;">
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla
</div>
<div>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla
</div>
<div style="background-color: #FFFFCC;">
Bla<br>
Bla<br>
Bla
</div>
<div>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla
</div>
<div style="background-color: #FFFFCC;">
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla<br>
Bla
</div>
</body>
</html>
Avatar billede Slettet bruger
11. december 2003 - 18:57 #2
Body-tagget bør nok se således ud:

<body onload="tjekdivs();" onscroll="tjekdivs();">
Avatar billede sbm Nybegynder
11. december 2003 - 20:36 #3
Ok. Ikke dårligt. Jeg tror jeg selv kan klare den herfra. Smid et svar.
Avatar billede Slettet bruger
11. december 2003 - 20:39 #4
Will do. :)
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