Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Popup - delay i close
Forum PHP.pl > Forum > Przedszkole
TomToma
Cześć, mam problem z popupem który pojawia się po każdej poprawnie wykonanej aktualizacji strony. Problem polega na tym, że mam dwie opcje zamykania tego popup'a, czasową ( zamykanie po 3 sekundach ) oraz po kliknięciu na "Zamknij" każda z nich osobno działa dobrze, ale jak włączę "delay" to przestaje mi działać "close". Może po prostu źle kombinuje z tym delay w jaki inny sposób to rozwiązać żeby okno zamykało się po 3 sekundach.

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. $('#popup_name').fadeIn().delay(2000).fadeOut().css({ }).prepend('<a class="close" href="#"><img class="btn_close" title="Zamknij okno" src="images/cms/popup_close.png" alt="Zamknij" /></a>');
  4. var popMargTop = ($('#popup_name').height() + 80) / 2;
  5. var popMargLeft = ($('#popup_name').width() + 80) / 2;
  6. $('#popup_name').css({'margin-top' : -popMargTop,'margin-left' : -popMargLeft});
  7. $('body').append('<div id="fade"></div>');
  8. $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn().delay(2000).fadeOut();
  9. $('a.close, #fade').live('click', function() {
  10. $('#fade , .popup_block').fadeOut(function() {
  11. $('#fade, a.close').remove();
  12. });
  13. });
  14. });
kamil_lk
Cześć.
A może użyj gotowej biblioteki http://trentrichardson.com/Impromptu/
Z tego co tam piszą to jest poza standardowym 'zamknij' opcja wyłączenia popupa po upłynięciu określonego czasu.

Poniżej kod, który wywołuje popupa, który wyłącza się po 3 sekundach oraz z przyciskiem 'zamknij (x)'
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Untitled Document</title>
  5. <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  6. <script src="jquery-impromptu.js"></script> <!-- biblioteka pobrana z podanej stronki -->
  7. <link rel="stylesheet" media="all" type="text/css" href="styles.css"> <!-- stle pobrane z powyższej stronki -->
  8. <script type="text/javascript">
  9. $(window).load(function() {
  10. $("button.popup").bind(
  11.  
  12. 'click', function(){
  13. $.prompt('asdasd',{ overlayspeed: 2, buttons: {}, title: 'Jest zajebiście', timeout: 3000 });
  14. }
  15.  
  16. );
  17. });
  18. </head>
  19.  
  20. <button class="popup">POPUP</button>
  21. </body>
  22. </html>


https://raw.github.com/trentrichardson/jQue...ry-impromptu.js - biblioteka
https://raw.github.com/trentrichardson/Moop...urce/styles.css - style
luke18dg
Cytat(TomToma @ 14.02.2013, 23:37:45 ) *
Cześć, mam problem z popupem który pojawia się po każdej poprawnie wykonanej aktualizacji strony. Problem polega na tym, że mam dwie opcje zamykania tego popup'a, czasową ( zamykanie po 3 sekundach ) oraz po kliknięciu na "Zamknij" każda z nich osobno działa dobrze, ale jak włączę "delay" to przestaje mi działać "close". Może po prostu źle kombinuje z tym delay w jaki inny sposób to rozwiązać żeby okno zamykało się po 3 sekundach.

Nie czytałem kodu, nie znam się tyle na javiescript, żeby się o niej wypowiadać, ale z punktu czysto programistycznego pewnie wciskasz jakąś funkcje, która odpowiada za opóźnienie.
Ale czy nie łatwiej zrobić to na czasie? Pobrać czas lokalny i sprawdzać warunkiem czy minął czas jeśli tak ma zniknąć, jeśli nie ma dalej być.
Krzyżyk to spełnienie dodatkowego jakiegoś warunku dołączonego do warunku powyżej.
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.