44 rodziny wiedzą jak się zabezpieczyc

Gdy nadejdzie „W” – nie będzie czasu na googlowanie. Masz gotowy scenariusz?

==Otrzymaj gotowy plan działania dla całej rodziny i majątku== – praktyczne, sprawdzone instrukcje bez zbędnych teorii.

Nowoczesna okładka e-booka o bezpieczeństwie rodziny

Przygotuj się na nieoczekiwane

Co zawiera Poradnik Ewakuacyjny?

Kompleksowa lista wyposażenia

Szczegółowe zestawienie przedmiotów, które powinny znaleźć się w każdym plecaku ewakuacyjnym. Pozwoli Ci skutecznie przygotować się na każdą sytuację awaryjną.

Praktyczne wskazówki i porady

Dowiesz się, jak dobrać odpowiednie rzeczy, unikać błędów i jak racjonalnie pakować, aby być zawsze gotowym do ewakuacji.

Przygotowanie krok po kroku

Instrukcja, jak samodzielnie przygotować plecak oraz na co zwrócić uwagę, by w kryzysowej sytuacji działać ze spokojem i skutecznością.

Schematy rozpoznania zagrożenia

Ten rozdział pomoże Ci rozpoznać sygnały ostrzegawcze, zrozumieć mechanizmy oporu i wyznaczyć kryteria decyzji, pokazując, że odejście może być aktem odwagi, a nie słabości. Dzięki temu nabierzesz świadomości i przygotujesz się do podjęcia właściwej decyzji.

Overview

A jeśli to naprawdę się wydarzy?

Co zrobisz, gdy syreny zawyją w nocy?

Kryzys nie uprzedza i nie daje drugiej szansy. Pożary, powodzie, awarie, nagła ewakuacja – to może spotkać każdego. Wtedy zostają ci, którzy mają plan – i ci, którzy improwizują w chaosie.

Upon completion, you'll have the skills to analyze complex datasets, create insightful visualizations, and build predictive models for real-world applications. You'll also understand how to evaluate model performance, tune hyperparameters, and deploy your solutions in production environments.

Complete data science toolkit in 4 weeks

# Masz wybór – możesz działać z wyprzedzeniem.

This course transformed my career path completely. The practical projects helped me build a portfolio that landed me a job as a junior data analyst. The instructors were incredibly supportive and the community of learners provided valuable feedback on my work.

David Chen

David Chen

-

Data Analyst

==Na pytania „którędy jechać?”, „gdzie się zatrzymać?”, „co zabrać?”, „co z pieniędzmi?”, „czy to na pewno bezpieczne?”.== Wtedy zostają ci, którzy już mają plan – i ci, którzy będą próbować coś wymyślić w chaosie. # Ten poradnik powstał po to, by nie musieć improwizować # ==By działać z wyprzedzeniem.==

Python data visualization dashboard

Certificate of completion recognized by leading tech companies

By zadbać o tych, których kochasz – zanim pojawi się komunikat, którego nikt nie chciał usłyszeć. Nie musisz panikować. Ale powinieneś być gotowy.

The program includes 15 hands-on projects, 8 case studies, and mentorship sessions with experienced data scientists working in the industry. Each project is designed to reinforce specific skills while building toward a comprehensive portfolio that demonstrates your capabilities to potential employers.

Our active learning community provides networking opportunities, code reviews, and collaborative projects to enhance your professional development. Weekly office hours give you direct access to instructors for personalized guidance, and our career services team helps you leverage your new skills in the job market.

Oferta ograniczona czasowo - Nie przegap!

NaN
DNI
:
NaN
GODZIN
:
NaN
MINUT
:
NaN
SEKUND

Dla kogo?

Poradnik doceniony przez setki rodzin, właścicieli firm i liderów społecznych. \

Wartość materiałów to aż 588 zł

Limitowana promocja! Cena tylko 69 zł

* Ponad 60 stron poradnika “Wyjście Ewakuacyjne” ==(wartość: 329 zł)== * Niezbędnik wszystkich potrzebnych produktów
– do wydrukowania ==(wartość: 68 zł)== * Mapa z punktami ewakuacyjnymi ==(wartość: 191 zł)== ==ŁĄCZNA WARTOŚĆ PRODUKTÓW TO 588 ZŁ==

chcę się przygotować za 49 zł

Ilość pakietów w promocyjnej cenie ograniczona!

NaN
DNI
:
NaN
GODZIN
:
NaN
MINUT
:
NaN
SEKUND

Jeszcze się zastanawiasz?

Otrzymaj materiały o wartości 588 zł

Master essential Python skills for data analysis, visualization, and machine learning with our comprehensive course for beginners and intermediate programmers. Learn foundational concepts and advanced techniques to excel in the data science field.

Our curriculum covers all the critical components you need to excel in data science, with hands-on exercises and real-world applications:

Upon completion, you'll have the skills to analyze complex datasets, create insightful visualizations, and build predictive models for real-world applications. You'll also understand how to evaluate model performance, tune hyperparameters, and deploy your solutions in production environments.

Complete data science toolkit in 4 weeks

Our hands-on approach ensures you gain practical experience with each concept through real-world projects and guided exercises. From day one, you'll be working with actual datasets and solving problems that data scientists encounter in their daily work.

E-book “Wyjście ewakuacyjne” pozwolił mi stworzyć jasne zasady postępowania na wypadek kryzysu. Dzięki poradnikowi cała rodzina wie, jak zareagować, bez zbędnej paniki. Przejrzyste checklisty i konkretne instrukcje sprawiły, że rozmowy o bezpieczeństwie stały się łatwiejsze. To nie tylko wiedza, ale i spokój dla naszych dzieci. Teraz czuję, że naprawdę dbam o ich bezpieczeństwo.

Tadeusz B.

Tadeusz B.

-

ojciec i mąż

Students receive access to cloud computing resources, dataset libraries, and industry-standard tools used by professional data scientists. Our virtual lab environment allows you to experiment with large datasets without worrying about hardware limitations or complex setup procedures.

Python data visualization dashboard

Certificate of completion recognized by leading tech companies

Comprehensive learning experience

The program includes 15 hands-on projects, 8 case studies, and mentorship sessions with experienced data scientists working in the industry. Each project is designed to reinforce specific skills while building toward a comprehensive portfolio that demonstrates your capabilities to potential employers.

Our active learning community provides networking opportunities, code reviews, and collaborative projects to enhance your professional development. Weekly office hours give you direct access to instructors for personalized guidance, and our career services team helps you leverage your new skills in the job market.

Streamline Operations

Co zyskasz dzięki temu poradnikowi?

Ten poradnik to konkretna instrukcja:

In today's fast-paced business environment, staying competitive requires efficient tools and streamlined processes. Our platform integrates seamlessly with your existing workflows, providing powerful automation capabilities and real-time insights. Transform the way your team collaborates and delivers results with our comprehensive solution.

# ==Nie musisz mieć bunkra. Wystarczy, że masz plan.==

Built for Modern Business

I właśnie to dostajesz tutaj – krok po kroku, zero teorii, tylko praktyka.

Ilość pakietów w promocyjnej cenie ograniczona!

NaN
DNI
:
NaN
GODZIN
:
NaN
MINUT
:
NaN
SEKUND

Ilość pakietów w promocyjnej cenie ograniczona!

NaN
DNI
:
NaN
GODZIN
:
NaN
MINUT
:
NaN
SEKUND

Ilość pakietów w promocyjnej cenie ograniczona!

NaN
DNI
:
NaN
GODZIN
:
NaN
MINUT
:
NaN
SEKUND

Ilość pakietów w promocyjnej cenie ograniczona!

NaN
DNI
:
NaN
GODZIN
:
NaN
MINUT
:
NaN
SEKUND
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<style> .notification-container { background-color: #1a1a1a; border-radius: 8px; padding: 15px 20px; color: #ffffff; font-family: Arial, sans-serif; max-width: 400px; /* Maksymalna szerokość kontenera */ margin: 20px auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } .notification-content { display: flex; /* Używamy flexbox dla kropki i tekstu */ align-items: flex-start; /* Kropka na górze, tekst obok */ } .pulsating-dot { flex-shrink: 0; /* Zapobiega zmniejszaniu się kropki */ width: 12px; height: 12px; background-color: #28a745; /* Zielony kolor */ border-radius: 50%; margin-right: 10px; margin-top: 3px; /* Delikatne wyrównanie kropki z tekstem */ animation: pulse 1.5s infinite ease-in-out; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } } .notification-text { flex-grow: 1; /* Tekst zajmie całą dostępną przestrzeń */ font-size: 16px; line-height: 1.4; /* Poprawia czytelność zawiniętego tekstu */ } .notification-text strong { color: #dc3545; /* Czerwony kolor dla liczby */ font-weight: bold; } </style> <div class="notification-container"> <div class="notification-content"> <div class="pulsating-dot"></div> <div class="notification-text" id="main-notification-text"> Pozostało <strong id="remaining-count">12</strong> egzemplarzy w promocyjnej cenie 69 zł zamiast 588 zł </div> </div> </div> <script> console.log("Skrypt ładuje się..."); let remainingCount = 12; // Początkowa liczba egzemplarzy const remainingCountElement = document.getElementById('remaining-count'); if (remainingCountElement) { console.log("Znaleziono element 'remaining-count'. Początkowa wartość:", remainingCountElement.textContent); } else { console.error("Błąd: Nie znaleziono elementu 'remaining-count'! Sprawdź HTML."); } function updateCount() { if (remainingCount > 0) { remainingCount--; if (remainingCountElement) { remainingCountElement.textContent = remainingCount; console.log("Liczba zaktualizowana do:", remainingCount); } else { console.error("Błąd: Element 'remaining-count' zniknął lub jest niedostępny."); } } else { console.log("Liczba egzemplarzy osiągnęła 0. Zatrzymywanie dalszych aktualizacji."); if (remainingCountElement) { remainingCountElement.textContent = "0"; // Ustawia 0, jeśli licznik spadnie poniżej } } } // Uruchamiamy funkcję zmniejszającą liczbę zgodnie z podanymi interwałami console.log("Ustawiam pierwsze opóźnienie (5s)..."); setTimeout(() => { updateCount(); // 12 -> 11 console.log("Pierwsza aktualizacja po 5s."); console.log("Ustawiam drugie opóźnienie (60s)..."); setTimeout(() => { updateCount(); // 11 -> 10 console.log("Druga aktualizacja po kolejnej minucie."); console.log("Ustawiam trzecie opóźnienie (4s)..."); setTimeout(() => { updateCount(); // 10 -> 9 console.log("Trzecia aktualizacja po kolejnych 4s."); // Tutaj możesz dodać kolejne setTimeouty, jeśli potrzebujesz więcej kroków. }, 4000); // Kolejne 4 sekundy }, 60000); // Kolejna minuta }, 5000); // Pierwsze 5 sekund </script>
<script type="text/javascript"> (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "u1eyqmk5vj"); </script>