每个浏览器会话运行一次脚本,但在结束时冻结脚本

Run script once per browser session, but freeze script at end

本文关键字:脚本 结束 冻结 一次 会话 浏览器 运行      更新时间:2023-09-26

我在这里有一个正在开发的网站,我很高兴看到这个介绍。但是,我需要这个脚本在浏览器会话中运行一次,然后在会话的其余部分保持最终状态。这样可以吗,还是我重新安排一下。我是新手,需要一些帮助!我的介绍脚本如下:

var words = ['websites', 'animation', 'branding', 'illustration'];
var i = 0;
var final = "thirdrail";
var splash = setInterval(function() {
  $("#word").hide().html(words[i++]).fadeIn(500);
  if (i == words.length + 1) {
    $("#word").html(final);
    clearInterval(splash);
    var time = setTimeout(function() {
      $(".overlay").addClass("level");
      $("#word").addClass("before");
      $(".logo").addClass("final");
      $("#static").html('<img src="symbol.svg"/>');
      $("nav").css('right', '-20px');
      $(".icon").css('right', '5%');
    }, 2000);
  }
}, 1000);

完整的示例,如果您需要的话

var final = "thirdrail";
function startSplash() {
	var words = ['websites', 'animation', 'branding', 'illustration'];
	var i = 0;
	var splash = setInterval(function() {
		$("#word").hide().html(words[i++]).fadeIn(500);
		if (i == words.length + 1) {
			$("#word").html(final);
			clearInterval(splash);
			var time = setTimeout(function() {
				endSplash();
				localStorage.setItem("splashed", true);
			}, 2000);
		}
	}, 1000);
}
function endSplash() {
	$("#word").html(final);
	$(".overlay").addClass("level");
	$("#word").addClass("before");
	$(".logo").addClass("final");
	$("#static").html('<img src="symbol.svg"/>');
	$("nav").css('right', '-20px');
	$(".icon").css('right', '5%');
}
if(!sessionStorage.getItem("splashed")){
	startSplash();
} else {
	endSplash();
}

您可以使用cookies,或者localStorage:

if(localStorage.getItem("intro"){
//go to normal page
}else{
localStorage.setItem("intro",true);
//show intro
}

就像Sam在我写这个的时候说的…