안녕하세요 저는 잘 작동하는 카운트 다운 타이머를 만들었지 만 10 초가 남았을 때 사용자에게 시간이 끝날 것이라고 알려주는 하나의 팝업이 표시되기를 원합니다.
이 팝업을 표시하기 위해 부트 스트랩 모달을 사용합니다.
문제는 팝업을 닫으려고하면 다시 표시된다는 것입니다. 이 문제에 대한 해결책을 제시해 주시겠습니까?
여기에 내 코드가 있습니다. localhost에서 실행할 수 있습니다.
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<!-- <script src="js/jquery.min.js"></script>-->
<script type="text/javascript">
var total_seconds = 15;
var c_minutes=parseInt(total_seconds/60);
var c_seconds=parseInt(total_seconds%60);
// var hours=parseInt(total_seconds/3600);
function CheckTime(){
document.getElementById('time-left').innerHTML='Time Left: '+c_minutes+' min '+c_seconds+' sec';
if(total_seconds<=0){
// alert("oops no time left");
//setTimeout('document.form.submit()',1);
}else{
//alert("start");
total_seconds=total_seconds-1;
c_minutes=parseInt(total_seconds/60);
c_seconds=parseInt(total_seconds%60);
//hours=parseInt(total_seconds/3600);
//alert(total_seconds);
document.getElementById('t_sec').value=total_seconds;
var time_left = $('#t_sec').val();
//alert(time_left);
if(time_left<=10){
//alert("hello "+time_left);
$('#myModal').modal('show');
$('#m_sec').text(time_left);
}
console.log(total_seconds);
setTimeout("CheckTime()",1000);
}
}
setTimeout("CheckTime()",1000);
function save_data(){
var sec=document.getElementById('t_sec').value;
$.ajax({
type:'post',
url: 'save_time.php',
data:{total_sec:sec},
success:function(response){
}
});
alert(sec);
//setTimeout('document.form.submit()',1);
}
</script>
<style>
.button{
color: #fff;
background-color: #3079ed;
border: none;
border-radius: 4px;
text-align: center;
white-space: nowrap;
padding: 6px 12px;
/* border-color: #ccc;*/
}
</style>
</head>
<body>
<h1>Countdown Timer</h1>
<div id="time-left"> </div>
<br/><br/>
<form method="post" name="form">
<input type="hidden" name="tot_sec" id="t_sec" value="">
<button name="sub" id="submt" onclick="save_data()">Save</button>
</form>
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog" style="margin-top: 150px;">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<!-- <div class="modal-header">-->
<div style="padding-top: 20px;padding-left: 15px;padding-right: 15px;padding-bottom: 20px;">
<!-- <button type="button" class="close" data-dismiss="modal">×</button>-->
<div style="background: #cbcdce;padding-left: 8px;"><h4 class="modal-title" style="font-size: 18px;font-family: segoe UI;font-weight: bold;">Warning</h4></div>
</div>
<div class="modal-body" style="padding-left: 15px;padding-right: 15px;padding-bottom: 2px;padding-top: 2px;">
<p style="font-family: Segoe UI;font-size: 15px;font-weight: 600;">oops!... Your time to complete survey is going to finish.</p>
<div><span style="font-family: Segoe UI;font-size: 15px;font-weight: normal;"> Your Survey will be submitted within</span> <span id="m_sec" style="color: #e61e1e; font-family: Segoe UI;font-weight: bold;"></span> <span style="font-family: Segoe UI;font-size: 15px;font-weight: normal;">Seconds...</span></div>
</div>
<!-- <div class="modal-footer">-->
<div style="height: 45px;margin-top: 20px;margin-bottom: 20px;padding-right: 15px;padding-left: 15px;">
<div style="float: right;padding-top: 4px;padding-right: 2px;padding-bottom: 4px;"><button type="button" class="button" data-dismiss="modal">OK</button></div>
</div>
</div>
</div>
</div>
<!--End modal-->
</body>
</html>
표시된 상태를 저장하고 확인하려면 전역 변수를 사용하십시오. 거짓이면 모달을 표시합니다.
모달이 표시되면 shown=true
다시 팝업되지 않도록로 설정 됩니다.
아래 코드를 시도하십시오.
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<!-- <script src="js/jquery.min.js"></script>-->
<script type="text/javascript">
var total_seconds = 15;
var shown=false;
var c_minutes=parseInt(total_seconds/60);
var c_seconds=parseInt(total_seconds%60);
// var hours=parseInt(total_seconds/3600);
function CheckTime(){
document.getElementById('time-left').innerHTML='Time Left: '+c_minutes+' min '+c_seconds+' sec';
if(total_seconds<=0){
// alert("oops no time left");
//setTimeout('document.form.submit()',1);
}else{
//alert("start");
total_seconds=total_seconds-1;
c_minutes=parseInt(total_seconds/60);
c_seconds=parseInt(total_seconds%60);
//hours=parseInt(total_seconds/3600);
//alert(total_seconds);
document.getElementById('t_sec').value=total_seconds;
var time_left = $('#t_sec').val();
//alert(time_left);
if(time_left<=10){
//alert("hello "+time_left);
if (shown==false){
$('#myModal').modal('show');
shown=true;
}
$('#m_sec').text(time_left);
}
console.log(total_seconds);
setTimeout("CheckTime()",1000);
}
}
setTimeout("CheckTime()",1000);
function save_data(){
var sec=document.getElementById('t_sec').value;
$.ajax({
type:'post',
url: 'save_time.php',
data:{total_sec:sec},
success:function(response){
}
});
alert(sec);
//setTimeout('document.form.submit()',1);
}
</script>
<style>
.button{
color: #fff;
background-color: #3079ed;
border: none;
border-radius: 4px;
text-align: center;
white-space: nowrap;
padding: 6px 12px;
/* border-color: #ccc;*/
}
</style>
</head>
<body>
<h1>Countdown Timer</h1>
<div id="time-left"> </div>
<br/><br/>
<form method="post" name="form">
<input type="hidden" name="tot_sec" id="t_sec" value="">
<button name="sub" id="submt" onclick="save_data()">Save</button>
</form>
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog" style="margin-top: 150px;">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<!-- <div class="modal-header">-->
<div style="padding-top: 20px;padding-left: 15px;padding-right: 15px;padding-bottom: 20px;">
<!-- <button type="button" class="close" data-dismiss="modal">×</button>-->
<div style="background: #cbcdce;padding-left: 8px;"><h4 class="modal-title" style="font-size: 18px;font-family: segoe UI;font-weight: bold;">Warning</h4></div>
</div>
<div class="modal-body" style="padding-left: 15px;padding-right: 15px;padding-bottom: 2px;padding-top: 2px;">
<p style="font-family: Segoe UI;font-size: 15px;font-weight: 600;">oops!... Your time to complete survey is going to finish.</p>
<div><span style="font-family: Segoe UI;font-size: 15px;font-weight: normal;"> Your Survey will be submitted within</span> <span id="m_sec" style="color: #e61e1e; font-family: Segoe UI;font-weight: bold;"></span> <span style="font-family: Segoe UI;font-size: 15px;font-weight: normal;">Seconds...</span></div>
</div>
<!-- <div class="modal-footer">-->
<div style="height: 45px;margin-top: 20px;margin-bottom: 20px;padding-right: 15px;padding-left: 15px;">
<div style="float: right;padding-top: 4px;padding-right: 2px;padding-bottom: 4px;"><button type="button" class="button" data-dismiss="modal" >OK</button></div>
</div>
</div>
</div>
</div>
<!--End modal-->
</body>
</html>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다