Mindfulness Pulse Anchor document.addEventListener('DOMContentLoaded', function() { // --- הגדרות התרגיל (ניתנות לשינוי) --- const PULSE_DURATION_MS = 1000; // משך הרטט (1 שניה) const PAUSE_DURATION_MS = 1000; // משך ההפסקה (1 שניה) const CYCLES_PER_RUN = 5; // מספר הפולסים ב-10 שניות (10/2) const TOTAL_RUNS = 10; // סך הפעמים שהתבנית של 10 שניות תרוץ const PULSE_WINDOW_MS = 10000; // חלון זמן כולל לריצה אחת (10 שניות) // ------------------------------------ const buttonElement = document.getElementById('vibrate-button'); // יצירת תבנית הרטט: [רטט, הפסקה, רטט, הפסקה, ...] // המערך צריך להיות באורך 2 * CYCLES_PER_RUN (10 אלמנטים) const PULSE_PATTERN = []; for (let i = 0; i < CYCLES_PER_RUN * 2; i++) { // רטט נמצא במקומות זוגיים, הפסקה באי-זוגיים if (i % 2 === 0) { PULSE_PATTERN.push(PULSE_DURATION_MS); // 1000ms רטט } else { PULSE_PATTERN.push(PAUSE_DURATION_MS); // 1000ms הפסקה } } // הפונקציה הראשית שמפעילה את תרגיל הנשימה כולו const triggerPulsedVibration = () => { if (!window.navigator || !window.navigator.vibrate) { console.log("מנגנון הרטט אינו נתמך במכשיר זה."); return; } buttonElement.disabled = true; // נטרול הכפתור בזמן התרגיל let currentRun = 0; console.log(`תרגיל דופק הופעל: ${TOTAL_RUNS} מחזורים של 10 שניות.`); // פונקציה רקורסיבית שמריצה את תבנית הרטט פעם אחת const runPulseWindow = () => { // תנאי עצירה if (currentRun >= TOTAL_RUNS) { console.log("תרגיל הדופק הסתיים."); buttonElement.disabled = false; return; } currentRun++; console.log(`מחזור דופק ${currentRun} מתוך ${TOTAL_RUNS}: 10 שניות ספירה מתחילות`); // 1. הפעלת תבנית הרטט המלאה (5 רטיטות על פני 10 שניות) window.navigator.vibrate(PULSE_PATTERN); // 2. קביעת טיימר לשיגור המחזור הבא בדיוק לאחר 10 שניות setTimeout(runPulseWindow, PULSE_WINDOW_MS); }; // התחלת המחזור הראשון runPulseWindow(); }; // קישור הפונקציה ללחיצה על הכפתור if (buttonElement) { buttonElement.addEventListener('click', triggerPulsedVibration); } });