Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Załadowanie DIVa z funkcją setTimeout
sderes
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.10.2016

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


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

Ten post edytował sderes 25.10.2016, 23:45:33
Go to the top of the page
+Quote Post
emstawicki
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 40
Dołączył: 2.06.2016
Skąd: Olsztyn

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


A gdzie i kiedy wywołujesz funkcję Cookie(), która nadaje klasę wyswietl?
Obecnie funkcja Zamknij() wykonuję jedną rzecz - próbuje usunąć nienadaną klasę (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sderes
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.10.2016

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


Tak jak pisałem, jestem laikiem (IMG:style_emoticons/default/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. }
Go to the top of the page
+Quote Post
emstawicki
post
Post #4





Grupa: Zarejestrowani
Postów: 207
Pomógł: 40
Dołączył: 2.06.2016
Skąd: Olsztyn

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


Usuń styl liniowy z diva baner, bo to samo masz w klasie.
setTimeout zrób na funkcję Cookie()
Go to the top of the page
+Quote Post
sderes
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.10.2016

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


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 (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
emstawicki
post
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 40
Dołączył: 2.06.2016
Skąd: Olsztyn

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


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.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 01:01