繁体   English   中英

单击按钮后永久删除计时器

[英]Remove Timer Permanently After Button Has Been Clicked

我有一个弹出窗口,当页面加载时自动加载,它在关闭按钮上也有一个计时器,它的时间根据用户查看弹出窗口的次数而变化。 它还有一个“打印”按钮,如果按下“g”键,可以调用弹出窗口。

我的重点是“打印”按钮。 目前,当我点击“打印”按钮时,它会添加以下代码:

$("#timer").remove();
clearInterval(setMsg);

但是,如果你要重新加载页面的计时器将重新出现如果按钮没有被点击的话,那将是要么515304560取决于你是如何此前多次浏览网页秒。 我希望在点击“打印”按钮后永久删除计时器。 这可能是通过localStorage或cookie实现的,但我对这些类别没有经验。

请注意,计时器在片段或小提琴中似乎不起作用,因为我认为有些函数被禁止工作,例如document.write 但是,当我创建HTML文件时,它将在我的浏览器中工作。 我的代码如下:

 $(document).ready(function() { $(document).keypress(function(e) { if (e.charCode === 65 || 103) { $('#PopUp').css("visibility", "visible"); $('#PopUp').css("opacity", 1); } }); $(function() { $('#PopUp').css("visibility", "visible"); $('#PopUp').css("opacity", 1); }); $(".close").click(function() { $('#PopUp').css("visibility", "hidden"); $('#PopUp').css("opacity", 0); }); }); // initialization var counter = 60; var timesVisited = 0; var cookieExpirationDays = 7; // don't expire cookies for a week // test to see if localstorage/sessionStorage is available (localStorage has no expiration date) if (typeof(Storage) !== "undefined") { counter = 60; timesVisited = localStorage.getItem("timesVisited"); // first time if ((timesVisited == 0) || (timesVisited < 1)) { timesVisited = 1; localStorage.setItem("timesVisited", timesVisited); counter = 60; } // second time else if ((timesVisited >= 1) && (timesVisited <= 3)) { timesVisited++; localStorage.setItem("timesVisited", timesVisited); counter = 45; } // third time else if ((timesVisited >= 4) && (timesVisited <= 8)) { timesVisited++; localStorage.setItem("timesVisited", timesVisited); counter = 30; } // fourth time else if ((timesVisited >= 9) && (timesVisited <= 13)) { timesVisited++; localStorage.setItem("timesVisited", timesVisited); counter = 15; } // fifth time else if (timesVisited >= 14) { timesVisited++; localStorage.setItem("timesVisited", timesVisited); counter = 5; } } // No localstorage/sessionStorage. Use cookies else { timesVisited = getCookie("timesVisited"); console.log(timesVisited); // first time if ((timesVisited == "") || (timesVisited < 1)) { timesVisited = 1; setCookie("timesVisited", timesVisited, cookieExpirationDays); counter = 60; } // second time else if ((timesVisited >= 1) && (timesVisited <= 3)) { timesVisited++; setCookie("timesVisited", timesVisited, cookieExpirationDays); counter = 45; } // third time else if ((timesVisited >= 4) && (timesVisited <= 8)) { timesVisited++; setCookie("timesVisited", timesVisited, cookieExpirationDays); counter = 30; } // fourth time else if ((timesVisited >= 9) && (timesVisited <= 13)) { timesVisited++; setCookie("timesVisited", timesVisited, cookieExpirationDays); counter = 15; } // fifth time else if (timesVisited >= 14) { timesVisited++; setCookie("timesVisited", timesVisited, cookieExpirationDays); counter = 5; } } var setMsg = setInterval(function() { counter--; if (counter >= 60 && counter >= 70) { $("#close-message").html("1:" + (counter - 60)); } else if (counter >= 60 && counter < 70) { $("#close-message").html("1:0" + (counter - 60)); } else if (counter >= 10) { $("#close-message").html("0:" + counter); } else if (counter > 0) { $("#close-message").html("0:0" + counter); } else { $(".close").click(function() { $('#PopUp').css("visibility", "hidden"); $('#PopUp').css("opacity", 0); }); $("#timer").remove(); clearInterval(setMsg); } }, 1000); }); function printDiv() { var content = document.getElementById('content').innerHTML; var win = window.open(); win.document.write(content); win.print(); // JavaScript Print Function win.close(); //It will close window after Print. $( ".close" ).click(function() { $('#PopUp').css("visibility", "hidden"); $('#PopUp').css("opacity", 0); }); $("#timer").remove(); clearInterval(setMsg);s } 
 .t { -webkit-transform-origin: top left; -moz-transform-origin: top left; -o-transform-origin: top left; -ms-transform-origin: top left; -webkit-transform: scale(0.25); -moz-transform: scale(0.25); -o-transform: scale(0.25); -ms-transform: scale(0.25); z-index: 2; position: absolute; white-space: pre; overflow: visible; } #t1_1 { left: 256px; top: 35px; letter-spacing: 0.1px; } #t2_1 { left: 334px; top: 87px; word-spacing: -0.1px; } #t3_1 { left: 210px; top: 123px; } #t4_1 { left: 238px; top: 123px; word-spacing: -0.3px; } #t5_1 { left: 210px; top: 141px; } #t6_1 { left: 210px; top: 160px; } #t7_1 { left: 210px; top: 179px; } #t8_1 { left: 238px; top: 141px; letter-spacing: -0.1px; word-spacing: -0.1px; } #t9_1 { left: 238px; top: 160px; word-spacing: -0.1px; } #ta_1 { left: 238px; top: 179px; word-spacing: -0.1px; } #tb_1 { left: 343px; top: 242px; letter-spacing: -0.1px; } #tc_1 { left: 210px; top: 278px; } #td_1 { left: 210px; top: 297px; } #te_1 { left: 210px; top: 315px; } #tf_1 { left: 210px; top: 334px; } #tg_1 { left: 238px; top: 278px; word-spacing: -0.1px; } #th_1 { left: 238px; top: 297px; word-spacing: -0.1px; } #ti_1 { left: 238px; top: 315px; word-spacing: -0.2px; } #tj_1 { left: 238px; top: 334px; word-spacing: -0.1px; } #tk_1 { left: 286px; top: 393px; word-spacing: -0.1px; } #tl_1 { left: 210px; top: 429px; } #tm_1 { left: 210px; top: 448px; } #tn_1 { left: 210px; top: 466px; } #to_1 { left: 210px; top: 485px; } #tp_1 { left: 238px; top: 429px; word-spacing: -0.3px; } #tq_1 { left: 238px; top: 448px; word-spacing: -0.1px; } #tr_1 { left: 238px; top: 466px; word-spacing: -0.1px; } #ts_1 { left: 238px; top: 485px; word-spacing: -0.2px; } #tt_1 { left: 326px; top: 544px; letter-spacing: -0.1px; } #tu_1 { left: 210px; top: 580px; } #tv_1 { left: 210px; top: 599px; } #tw_1 { left: 210px; top: 618px; } #tx_1 { left: 238px; top: 618px; } #ty_1 { left: 210px; top: 636px; } #tz_1 { left: 238px; top: 636px; } #t10_1 { left: 210px; top: 655px; } #t11_1 { left: 238px; top: 580px; word-spacing: -0.1px; } #t12_1 { left: 238px; top: 599px; word-spacing: -0.2px; } #t13_1 { left: 238px; top: 655px; word-spacing: -0.1px; } #t14_1 { left: 264px; top: 716px; word-spacing: -0.2px; } #t15_1 { left: 210px; top: 752px; } #t16_1 { left: 210px; top: 771px; } #t17_1 { left: 210px; top: 789px; } #t18_1 { left: 210px; top: 808px; } #t19_1 { left: 238px; top: 752px; word-spacing: -0.1px; } #t1a_1 { left: 238px; top: 771px; word-spacing: -0.1px; } #t1b_1 { left: 238px; top: 789px; word-spacing: -0.2px; } #t1c_1 { left: 238px; top: 808px; word-spacing: -0.1px; } .s1_1 { FONT-SIZE: 85.4px; FONT-FAMILY: Arial; color: rgb(0, 0, 0); FONT-WEIGHT: bold; } .s2_1 { FONT-SIZE: 61.2px; FONT-FAMILY: Arial; color: rgb(0, 0, 0); FONT-WEIGHT: bold; } .s3_1 { FONT-SIZE: 61.2px; FONT-FAMILY: SymbolMT_1z5; color: rgb(0, 0, 0); } .s4_1 { FONT-SIZE: 61.2px; FONT-FAMILY: Arial; color: rgb(0, 0, 0); } div { padding-top: 10px; } .button { font-size: 1em; padding: 10px; color: #fff; border: 2px solid orange; border-radius: 20px/50px; text-decoration: none; cursor: pointer; transition: all 0.3s ease-out; } .button:hover { background: orange; } .overlay { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: rgba(0, 0, 0, 0.7); transition: opacity 500ms; visibility: visible; opacity: 1; height: 578%; width: 117.5%; } .overlay:target { visibility: hidden; opacity: 0; display: none; } .PopUp { margin: 50px auto; padding: 0px; background: #fff; border-radius: 5px; width: 60%; position: relative; transition: all 5s ease-in-out; } .PopUp .close { position: absolute; top: 20px; right: 30px; transition: all 200ms; font-size: 30px; font-weight: bold; text-decoration: none; color: #333; } .PopUp .close:hover { color: orange; } .PopUp .content { max-height: 117.5%; overflow: auto; } .pdf1 { width: 935px; height: 1210px; background-color: white; -moz-transform: scale(1); z-index: 0; border: none; } button { background-color: Transparent; background-repeat: no-repeat; border: none; cursor: pointer; overflow: hidden; outline: none; font-family: "Open Sans", sans-serif; font-weight: 700; color: #2D2D2D; font-size: 1rem; line-height: 1; text-align: center; } .Print { padding-bottom: 10px; margin-top: -5px; } .close-message { font-family: "Open Sans", sans-serif; font-weight: 700; color: black; font-size: 0.9rem; line-height: 1; position: absolute; top: 15px; left: 9px; } .timer { position: absolute; top: 5px; right: 20px; z-index: 2; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="PopUp" class="overlay"> <div class="PopUp"> <div class="timer" id="timer"><img src="http://i.imgur.com/87XaOWA.png"> <p class="close-message" id="close-message"></p> </div> <a class="close" href="#">&#10005;</a> <div class="content" id="content"> <div id="p1" class="p1" style="overflow: hidden; position: relative; width: 885px; height: 878px;"> <!-- Begin page background --> <div id="pg1Overlay" style="width:100%; height:100%; position:absolute; z-index:1; background-color:rgba(0,0,0,0); -webkit-user-select: none;"></div> <div id="pg1" class="pg1" style="-webkit-user-select: none;"><img src="http://i.imgur.com/vcY42CW.png" id="pdf1" class="pdf1"></img> </div> <!-- End page background --> <!-- Begin text definitions (Positioned/styled in CSS) --> <div id="t1_1" class="t s1_1">Player Selection Criteria Evaluator Cue Card</div> <div id="t2_1" class="t s2_1">Skating – speed, quickness, technique</div> <div id="t3_1" class="t s3_1">♦</div> <div id="t4_1" class="t s4_1">Forward and Backward</div> <div id="t5_1" class="t s3_1">♦</div> <div id="t6_1" class="t s3_1">♦</div> <div id="t7_1" class="t s3_1">♦</div> <div id="t8_1" class="t s4_1">Turn both directions</div> <div id="t9_1" class="t s4_1">Stop both directions</div> <div id="ta_1" class="t s4_1">Are they in a good position for stability and strength</div> <div id="tb_1" class="t s2_1">Passing – technique, control, vision</div> <div id="tc_1" class="t s3_1">♦</div> <div id="td_1" class="t s3_1">♦</div> <div id="te_1" class="t s3_1">♦</div> <div id="tf_1" class="t s3_1">♦</div> <div id="tg_1" class="t s4_1">Forehand and Backhand</div> <div id="th_1" class="t s4_1">To moving and stationary target</div> <div id="ti_1" class="t s4_1">Vision – do they take a look and select best option</div> <div id="tj_1" class="t s4_1">Advanced – board passes, chips, saucer passes</div> <div id="tk_1" class="t s2_1">Puck Control – technique, open ice, confined space</div> <div id="tl_1" class="t s3_1">♦</div> <div id="tm_1" class="t s3_1">♦</div> <div id="tn_1" class="t s3_1">♦</div> <div id="to_1" class="t s3_1">♦</div> <div id="tp_1" class="t s4_1">Open carry with speed</div> <div id="tq_1" class="t s4_1">Execute dekes and fakes on the 1 on 1</div> <div id="tr_1" class="t s4_1">Can they handle the puck in traffic and tight space</div> <div id="ts_1" class="t s4_1">Ability to maintain control while being stick checked</div> <div id="tt_1" class="t s2_1">Shooting – technique, accuracy, velocity</div> <div id="tu_1" class="t s3_1">♦</div> <div id="tv_1" class="t s3_1">♦</div> <div id="tw_1" class="t s3_1">♦</div> <div id="tx_1" class="t s4_1">Velocity</div> <div id="ty_1" class="t s3_1">♦</div> <div id="tz_1" class="t s4_1">Accuracy</div> <div id="t10_1" class="t s3_1">♦</div> <div id="t11_1" class="t s4_1">Forehand and backhand</div> <div id="t12_1" class="t s4_1">Wrist shot, snap shot, slap shot</div> <div id="t13_1" class="t s4_1">Shot Selection – do they select the best shot for the opportunity?</div> <div id="t14_1" class="t s2_1">Game Understanding – Principles of Offence and Defence</div> <div id="t15_1" class="t s3_1">♦</div> <div id="t16_1" class="t s3_1">♦</div> <div id="t17_1" class="t s3_1">♦</div> <div id="t18_1" class="t s3_1">♦</div> <div id="t19_1" class="t s4_1">Player understands positional play</div> <div id="t1a_1" class="t s4_1">Player supports the puck on the defensive and offensive side of puck</div> <div id="t1b_1" class="t s4_1">Player communicates with teammates</div> <div id="t1c_1" class="t s4_1">Player has the ability to read and react.</div> </div> </div> <div id="Print" class="Print" align="center"> <button onclick="printDiv()"><img src="http://i.imgur.com/HcXNoMC.png" /></button> </div> </div> </div> 

这是jsfiddle代码

但是,如果您要重新加载页面,计时器将重新出现,就好像按钮没有被点击一样,这可能是通过localStorage或cookie实现的,但我没有经验这些类别。

曲奇饼

基本上,您使用cookie变量作为标志来检查按钮是否已被单击。 如果未设置,则将其设置为true。

function printme() {
  if (!getCookie("printed")) {
    setCookie("printed", true, 1);
    console.log("printed");
  }

}

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  var expires = "expires=" + d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

function checkCookie() {
  var user = getCookie("username");
  if (user != "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user != "" && user != null) {
      setCookie("username", user, 365);
    }
  }
}

*使用https://www.w3schools.com/js/js_cookies.asp的 Cookie代码功能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM