Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CSS][HTML] Stałe tło, ale nie do końca...
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

Ostrzeżenie: (0%)
-----


Witam,

wydaje się, że prosta sprawa ale utknąłem w jednym miejscu kodu i jakoś nie mogę tego przeskoczyć... Mam prostą stronkę, powiedzmy coś takiego:

  1. <div id="page">
  2. <div class="top"></div>
  3. <div class="middle"></div>
  4. <div class="footer"></div>
  5. </div>
  6. </body>


I mam w szablonie graficznym w tło dodać takie dosyć duże zdjęcie, stałe wobec div-a "page". A więc prosta sprawa:

  1. body{
  2. margin : 0;
  3. padding : 0;
  4. background : url('images/layout.jpg') top center no-repeat fixed;}


Otrzymujemy efekt taki, że jeżeli jest więcej treści w div-ie "page" to jest on przewijalny w dół, ale tło jest statyczne, tzn tyle ile zmieściło się zdjęcia od góry ekranu.

Problem w tym, że zdjęcie w tle ma jakiś przekaz ale nie mieści się na ekranie w całości. Tyle ile od góry mamy miejsca tyle go widać... Chciałbym uzyskac efekt taki, że tło jest stałe tak jak teraz ale jeśli uzytkownik przewija stronę w dół, to w momencie gdy zaczyna dochodzi do stopki tło także zaczyna się przesuwać w górę... Widzę to oczami wyobraźni ale jakoś nie mogę tego zakodować... A może to jest niemożliwe technicznie...? Nie wiem czy dobrze to opisałem więc jak coś jest niejasne to proszę pytać. Jeśli macie jakieś pomysły to proszę o podpowiedź.

PS. Celem testów można podłożyć pod plik tła w powyższym kodzie jakiekolwiek zdjęcie z aparatu o wysokości np. 1500px, a do znacznika "middle" dopisać jakąś wysokość typu 3000px, etc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukash82
post
Post #2





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

Ostrzeżenie: (0%)
-----


Witam,

@Sephirus prawie idealnie zobrazowałeś to co sobie wyobrażałem... Spróbuje obydwu rozwiązań.

Witam ponownie,

1 rozwiązanie niestety nie działa. Drugie działa tak jak to miało być w zamyśle, ale tylko dla div-a przez co tworzy się dodatkowy suwak przy większej ilości treści. Próbowałem to przełożyć na wyższy poziom do <body> ale coś niebardzo to działa..., albo sam coś pochrzaniłem...

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="pl">
  3. function scrollTheFreakingBackground() {
  4. var body = document.getElementById('body');
  5. var scrollPosition = parseInt(body.scrollTop);
  6. var scrollHeight = parseInt(body.scrollHeight);
  7. var offsetHeight = parseInt(body.offsetHeight);
  8. var pictureHeight = 1200;
  9. var scrollPercent = scrollPosition / (scrollHeight - offsetHeight);
  10. var newPositionOfBackground = -1 * (pictureHeight - offsetHeight) * scrollPercent;
  11. body.style.backgroundPosition = 'center ' + newPositionOfBackground + 'px';
  12. }
  13. document.getElementById('body').addEventListener('scroll',scrollTheFreakingBackground,false);
  14. body{
  15. margin : 0;
  16. padding : 0;
  17. overflow : auto;
  18. background : green url('http://www.mega-tapety.info/wallpapers/krajobrazy/morzairzeki/tapety_na_pulpit_mega-tapety.info%20(177).jpg') top center no-repeat;}
  19. .txt{
  20. height : 2000px;
  21. width : 500px;
  22. background : red;
  23. margin : 0 auto;}
  24. </head>
  25. <body id="body">
  26. <div class="txt"></div>
  27. </body>
  28. </html>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 18:38