Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zwaracanie wartosci funkcji w document.write() co jakiś czas
Forum PHP.pl > Forum > Po stronie przeglądarki
Athlan
Problem wygląda tak:

chcę, aby margines ustaiwał się co 1 sec... napisałem sobie takie coś:

  1. <!--
  2. function zlap_rozdzielczosc()
  3. {
  4. wynik = Math.ceil(((window.innerWidth||document.body.clientWidth)/2)-395);
  5.  
  6. wynik = (wynik);
  7.  
  8. if(wynik < 0)
  9. {
  10. wynik = 0;
  11. }
  12.  
  13. return wynik;
  14. }
  15.  
  16. setInterval('zlap_rozdzielczosc()', 1000);
  17. //-->
  18.  
  19.  
  20. <!--
  21. document.write('<div style="margin-left: '+zlap_rozdzielczosc()+'px;">text</div>');
  22. //-->
  23.  
  24. </body>
  25. </html>


ale margines usatwai się tylko jak załaduje strone, bądź ją odświeżę... jak mam zrobić, aby margines się ustawiał co 1 sec?

Kod
setInterval('zlap_rozdzielczosc()', 1000);
tiraeth
Umiesc setInterval w samej funkcji zlap_rozdzielczosc() smile.gif
siemakuba
wogóle to troche za bardzo chyba kombinujesz :)
nie prościej tak:
  1. <script type="text/javascript">
  2.  
  3. function marginesuj()
  4. {
  5. var e = document.getElementById('marginesuj');
  6. e.style.marginLeft = (parseInt(e.style.marginLeft, 10)+10)+'px';
  7. }
  8.  
  9. function runInterval()
  10. {
  11. setInterval(marginesuj, 1000);
  12. }
  13.  
  14. </head><body onload="runInterval()">
  15.  
  16. <div style="margin:0px; border:2px solid red;width:100px;height:100px;" id="marginesuj">wanda </div>
  17.  
  18. </body></html>

wartości zmiany marginesu dostosuj sobie jak trzeba.
Tylko po co odpalać to co 1 sekundę, przy takim ustawieniu jak u ciebie? Sprawdzasz co 1 sekudnę czy przypadkiem ktoś nie zmienił rozmiaru okna i nie trzeba marginesu zmienić? Jest coś takiego co samo się tym zajmie... nie pamiętak tylko jak to się nazywa :/ dam znać jak znajdę :)

pozdr.
Athlan
Cytat(siemakuba @ 22.06.2006, 21:59 ) *
Sprawdzasz co 1 sekudnę czy przypadkiem ktoś nie zmienił rozmiaru okna i nie trzeba marginesu zmienić?


dokładnie tak smile.gif chodzi o odstęp loga od lewego marginesu, gdyż wyhodzi ono z tableki i jest na warstwie z-index: 1;

@siemakuba: jeżeli masz taki automat to zamieść, bo coś w stylu: style="left: 10%;" nie działa sadsmiley02.gif
siemakuba
nie chodziło mi o automat w sensie skrpyt czy cos :) chodzilo mi o jakas wlasciwosc / metode odpowiedzialna za informacje o zmianach stanu okna... no nie wiem, cos mi sie kolacze po glowie. Ale mniejsza z tym, jest cos innego co ci pomoze:
zamiast tego calego setInterval daj wywolanie tej fukcji sprawdzajacej na zdarzeniu onResize w BODY.
  1. <body onResize="zlap_rozdzielczosc()">

Uwaga - dziwnie troche to sie zachowuje pod IE (odpala sie 2-3 razy zamiast 1 raz) - sprawdz czy to bedzie przeszkadzac.

pozdr.
Athlan
no działa smile.gif

ale i tak w onload trzeba dać, bo laduje funkcję typko przy zmianie rozdzilczości okna... można też dać gdzieś steTimeout(zlap_rozdzielczosc,0000);

no... dzieki.... dziala

a da się jakoś ten margines ustawić w % w CSS?
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.