gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 04:40:12 25 4
gpt4 key购买 nike

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

我的注意力集中在“打印”按钮上。目前,当我单击“打印”按钮时,它会添加以下代码:

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

但是,如果您重新加载页面,计时器将重新出现,就好像根本没有单击该按钮一样,它将是 515304560 秒,具体取决于您之前查看该页面的次数。我希望在单击“打印”按钮后永久删除计时器。这可能可以通过 localStorage 或 cookie 来实现,但我在这些类别方面没有经验。

请注意,计时器在代码片段或 fiddle 中似乎不起作用。因为我相信有几个功能无法工作,例如 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>

最佳答案

Here is the jsfiddle code

However if you were to reload the page the timer would reappear as if the button hadn't been clicked at all, This could probably be achieved by localStorage or a cookie but I am not experienced in those categories.

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);
}
}
}

*Cookie 代码函数使用自https://www.w3schools.com/js/js_cookies.asp

关于javascript - 单击按钮后永久删除计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com