Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][JavaScript] dynamiczne położenie diva
Forum PHP.pl > Forum > Przedszkole
shpaque
  1. <div style="position:absolute;background:#CCCCCC;width:100px;height:<script>document.write(document.body.scrollHeight - 33)</script>px;"></div>
czego użyć, żeby odczytał skrypt w znakach cudzysłowia w stylu diva?

...ewentualnie w php, ale to tez nie działa...

  1. <?php
  2. $dupa = "<script>document.write(document.body.scrollHeight - 150)</script>";
  3. ?>
  4. <div style="position:absolute;background:#CCCCCC;width:100px;height:<?php echo $dupa; ?>px;">
  5. </div>
PrinceOfPersia
czemu mieszasz 3 języki naraz? A w drugim podanym fragmencie nawet 4? Czemu mieszasz język PHP, który działa po stronie serwera i kod JavaScript, który odpala się po stronie przeglądarki? Wiesz, że to nie prawa ci zadziałać?

Generalnie:
strony trzymane są na serwerach. Przeglądarka wysyła żądanie HTTP i czeka na odpowiedź serwera. Wtedy jest odpalany na serwerze kod PHP, który generuje odpowiedź. Wygenerowana odpowiedź (czyli kod HTML) leci do przeglądarki. Dalej przeglądarka odpala skrypty z pliku HTML, oraz dociąga pozostałe dołączane skrypty/style, mogą lecieć kolejne zapytania do serwera.

Teraz się zastanów i pomyśl to co napisałeś w drugim snippecie z kodem
[JAVASCRIPT] pobierz, plaintext
  1. $dupa = "<script>document.write(document.body.scrollHeight - 150)</script>";
  2. ......
[JAVASCRIPT] pobierz, plaintext


Nie ma żadnego sensu. Możesz to zrobic na masę różnych sposobów, ale to nie jest jeden z nich. Przypuszczalnie mógłbyś do tego co chcesz zrobić użyć biblioteki jQuery i napisać w JavaScript coś w tym stylu:
[JAVASCRIPT] pobierz, plaintext
  1. $(function () {
  2. $("#tu-wpisz-id-elementu").css("height", (document.body.scrollHeight - 150) + "px");
  3. });
[JAVASCRIPT] pobierz, plaintext

(powinno działać, ale nie sprawdzałem - natomiast jak chcesz się bawić w strony to sobie powinieneś doczytać już...).

poza tym style CSS trzyma się w osobnych plikach z rozszerzeniem .css, ewentualnie między tagami <style>....</style> w HTML, a nie (poza wyjątkowymi sytuacjami) wsadza je hurtem w diva jak napisałeś:
  1. <div style="position:absolute;background:#CCCCCC;width:100px;height:
shpaque
jQuery nawet działa - ale tylko w pojedynczym przypadku, kiedy z innej podstrony przechodze na tą gdzie jest użyty, a że strona ta ma linie z $_GET - po zmianie danych w pasku adresów funkcja z jQuery przestaje działać bo nie jest ponownie załadowana...
PrinceOfPersia
nie rozumiem, co ma jQuery do zmiennej $_GET?
shpaque
to, że kiedy nacisnę button na podstronie, który przeładuje stronę, skrypt jquery nie zostanie ponownie przeładowany wraz ze zmianą ścieżki $_GET - przez co nie wypozycjonuje znów dynamicznie diva...

inaczej, po zmianie sciezki np: ...costam/gdziestam&strona=1 na ...strona=2 zmienia się wysokośc strony, poniewaz w iframe zostaje wczytany np dluzszy text - ale wowczas skrypt zostaje na oryginalnej pozycji, a nie przesuwa sie wzgledem nowej wysokosci strony...
PrinceOfPersia
poczekaj, $_GET to jest nazwa zmiennej w PHP, i zmiana tej zmiennej na nic absolutnie nie wpłynie, poza samym skryptem PHP. Więc co ma wspólnego z kodem JavaScript? Chyba, że mówisz o parametrach urla w GET.

poza tym - jaki iframe? Co ty chcesz zrobić w ogóle?
shpaque
chodzi o to, że mam pewien program który generuje stronę (nazwy nie będę tutaj używał), i on sam koduje całą stronę. Ta podstrona, która mnie interesuje - jest podstroną dynamiczną, jest w niej zawarta treść w iframe, która w zależności od danych pobranych z paska adresu (GETem), wydłuża bądź skraca stronę.

Chodzi mi dokładnie o ustawienie stopki na dole strony, ale jak pisałem wyżej niestety nie wystarczy mi "bottom:0 i position:absolute", bo program tą stopkę generuje w swoim własnym kodowaniu, nie mogę jej również zrobić pływającej na dole okna przeglądarki - dlatego kombinuję coś, żeby obejść system i zrobić tak, żeby jej pozycja była dynamiczna i na bieżąco skrypt sprawdzał jaka jest wysokość tej strony umieszczając ją 150px wyżej niż wysokość...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.