Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Załadowanie DIVa z funkcją setTimeout
Forum PHP.pl > Forum > Przedszkole
sderes
Witam.

Jestem amatorem i początkującym, proszę o wybaczenie za lamerskie pytanie, ale mam taki kłopot:

Mam na stronie popupa w formie DIVa o nazwie "baner", gdzie jest m.in. taka funkcja <a href="#" onclick="Zamknij();" title="zamknij";> - możliwość zamknięcia popupa. Popup ten pojawia się od razu po wejściu na stronę. Chciałbym zrobić tak, żeby popup pojawiał się po określonym czasie np. po 5 sekundach, tak więc w JS dałem...

[JAVASCRIPT] pobierz, plaintext
  1. setTimeout(function(){
  2. document.getElementById('baner').style.display = 'block';
  3. }, 5000);
[JAVASCRIPT] pobierz, plaintext


... a do DIVa dodałem

style="display: none";

I faktycznie, popup pojawia się po 5 sekundach od wejścia na stronę. Pojawił się jednak taki problem, że nie działa już ta funkcja / możliwość zamknięcia popupa. Rozumiem, że coś się gryzie z czymś, ale nie mam pojęcia co...

Cały JS dotyczący tego popupa wygląda tak:

[JAVASCRIPT] pobierz, plaintext
  1. setTimeout(function(){
  2. document.getElementById('baner').style.display = 'block';
  3. }, 5000);
  4.  
  5. function Cookie() {
  6.  
  7. var ciasteczka = document.cookie.split("; ");
  8.  
  9. for (i=0; i<ciasteczka.length; i++)
  10. {
  11. var ciacho=ciasteczka[i];
  12. if (ciacho=="baner=jeden")
  13. {
  14. return;
  15. }
  16.  
  17. }
  18. $('#baner').addClass('wyswietl');
  19.  
  20. }
  21.  
  22. function Zamknij() {
  23. $('#baner').removeClass('wyswietl');
  24. }
  25.  
  26. function Kasuj(){
  27. $('#baner').removeClass('wyswietl');
  28. document.cookie = "baner=jeden; expires=Mon, 01 Jan 2035 00:00:01 GMT; ";
  29. }
  30.  
  31. window.onload = Cookie;
[JAVASCRIPT] pobierz, plaintext


Będę wdzięczny za jakąkolwiek wskazówkę.

Pozdrawiam
emstawicki
A gdzie i kiedy wywołujesz funkcję Cookie(), która nadaje klasę wyswietl?
Obecnie funkcja Zamknij() wykonuję jedną rzecz - próbuje usunąć nienadaną klasę smile.gif
sderes
Tak jak pisałem, jestem laikiem sad.gif Sam szkielet DIVa wygląda tak:

  1. <div id="baner" class="nie-wyswietl" style="display: none";>
  2. <div id="home">
  3.  
  4. <div style="position: absolute;
  5. top: 185px;
  6. right: 30%;
  7. z-index:999999";>
  8.  
  9.  
  10. <a href="#" onclick="Zamknij();" title="zamknij";> X </a>
  11. </div>
  12. <div id="home2">
  13.  
  14. (...)
  15.  
  16. </div>
  17. </div>


Natomiast w CSSie mam

  1. .nie-wyswietl {
  2.  
  3. display:none;
  4.  
  5. }
  6.  
  7. .wyswietl {
  8.  
  9. display:inline;
  10.  
  11. }
emstawicki
Usuń styl liniowy z diva baner, bo to samo masz w klasie.
setTimeout zrób na funkcję Cookie()
sderes
Chodzi o coś takiego?

[JAVASCRIPT] pobierz, plaintext
  1. setTimeout(function(Cookie){
  2. document.getElementById('baner').style.display = 'block';
  3. }, 5000);
  4.  
  5. function Cookie() {
  6.  
  7. var ciasteczka = document.cookie.split("; ");
  8.  
  9. for (i=0; i<ciasteczka.length; i++)
  10. {
  11. var ciacho=ciasteczka[i];
  12. if (ciacho=="baner=jeden")
  13. {
  14. return;
  15. }
  16.  
  17. }
  18. $('#baner').addClass('wyswietl');
  19.  
  20. }
  21.  
  22. function Zamknij() {
  23. $('#baner').removeClass('wyswietl');
  24. }
  25.  
  26. function Kasuj(){
  27. $('#baner').removeClass('wyswietl');
  28. document.cookie = "baner=jeden; expires=Mon, 01 Jan 2035 00:00:01 GMT; ";
  29. }
  30.  
  31. window.onload = Cookie;
[JAVASCRIPT] pobierz, plaintext


Usunąłem też zdublowany styl liniowy z DIVa... Przycisk zamknięcia nadal nie działa jak dodaję w JS setTimeout sad.gif
emstawicki
Sprawdzaj swoją składnię - nie zamykasz znaczników, stawiasz dziwne średniki gdzie popadnie.
http://jsfiddle.net/emstawicki/L75xj0xr/
Przykład działający. Dodaj do niego swoje funkcje sprawdzające cookies.
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.