29-03-26, 03:45 AM
صحيح احسنت هذه التفاتة مهمة
في حال تحديث الصفحة يتم إعادة حساب الوقت من جديد
الحل هو حفظ وقت انتهاء التنبيه في localStorage حتى يبقى محفوظ حتى بعد التحديث
في حال تحديث الصفحة يتم إعادة حساب الوقت من جديد
الحل هو حفظ وقت انتهاء التنبيه في localStorage حتى يبقى محفوظ حتى بعد التحديث
PHP كود :
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>تنبيه صلاة الفجر</title>
<style>
#overlay {
display: none;
position: fixed;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.5);
top: 0;
left: 0;
}
#popup {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #fff;
padding: 20px;
border-radius: 10px;
text-align: center;
}
#countdown {
font-size: 18px;
margin-top: 20px;
text-align: center;
}
button {
margin-top: 10px;
}
</style>
</head>
<body>
<div id="overlay"></div>
<div id="popup">
<h3>تنبيه صلاة الفجر</h3>
<p>حان الآن وقت صلاة الفجر</p>
<button onclick="temporaryClose()">إغلاق</button>
</div>
<div id="countdown"></div>
<script>
const fajrTime = "05:10";
let popupInterval;
function showPopup() {
document.getElementById("popup").style.display = "block";
document.getElementById("overlay").style.display = "block";
}
function closePopup() {
document.getElementById("popup").style.display = "none";
document.getElementById("overlay").style.display = "none";
}
function temporaryClose() {
closePopup();
}
function startFajrAlert(savedEndTime = null) {
let endTime = savedEndTime || (new Date().getTime() + 5 * 60 * 1000);
localStorage.setItem("fajrEndTime", endTime);
popupInterval = setInterval(() => {
let now = new Date().getTime();
if (now >= endTime) {
clearInterval(popupInterval);
localStorage.removeItem("fajrEndTime");
closePopup();
} else {
showPopup();
}
}, 1000);
}
function updateCountdown() {
let now = new Date();
let [hour, minute] = fajrTime.split(":");
let fajrDate = new Date();
fajrDate.setHours(parseInt(hour));
fajrDate.setMinutes(parseInt(minute));
fajrDate.setSeconds(0);
if (fajrDate < now) {
fajrDate.setDate(fajrDate.getDate() + 1);
}
let diff = fajrDate - now;
let hours = Math.floor(diff / 1000 / 60 / 60);
let minutes = Math.floor((diff / 1000 / 60) % 60);
let seconds = Math.floor((diff / 1000) % 60);
document.getElementById("countdown").textContent =
`الوقت المتبقي لصلاة الفجر: ${hours} ساعة، ${minutes} دقيقة، ${seconds} ثانية`;
}
function scheduleFajr() {
let now = new Date();
let [hour, minute] = fajrTime.split(":");
let fajrDate = new Date();
fajrDate.setHours(parseInt(hour));
fajrDate.setMinutes(parseInt(minute));
fajrDate.setSeconds(0);
if (fajrDate < now) {
fajrDate.setDate(fajrDate.getDate() + 1);
}
let diff = fajrDate - now;
setTimeout(() => startFajrAlert(), diff);
}
function checkSavedAlert() {
let savedEndTime = localStorage.getItem("fajrEndTime");
if (savedEndTime) {
startFajrAlert(parseInt(savedEndTime));
}
}
setInterval(updateCountdown, 1000);
checkSavedAlert();
scheduleFajr();
updateCountdown();
</script>
</body>
</html>


![[صورة مرفقة: 177461173141861.gif]](https://up6.cc/2026/03/177461173141861.gif)