Javascript 尝试删除此代码而不需要将其放在单独的页面中
我的index.html页面有一个奇特的动画开始,它本质上是下面的代码Javascript 尝试删除此代码而不需要将其放在单独的页面中,javascript,jquery,html,Javascript,Jquery,Html,我的index.html页面有一个奇特的动画开始,它本质上是下面的代码 $(document).ready(function() { setTimeout(function() { $("#loader-wrapper .loader-section, #textbit, #logo, #wrapper").hide("slow"); $("#wrapper").unwrap(); }, 11000); }); 。。。。。所以,一旦这段代码
$(document).ready(function() {
setTimeout(function() {
$("#loader-wrapper .loader-section, #textbit, #logo, #wrapper").hide("slow");
$("#wrapper").unwrap();
}, 11000);
});
。。。。。所以,一旦这段代码运行了11秒,它就会被打开,这很好。。。问题是我有一个标签可以随时返回到索引页面,我不希望人们在每次进入主页之前都要等待简介动画的运行
我不会接受任何回答说..“做一个单独的页面上的动画”-代码必须在索引页本身
我希望有某种jquery可以在刷新浏览器页面之前删除代码,类似这样的东西。。非常感谢您的帮助
编辑——获得一些不清楚的初步反馈。。。为了……步调一致
您可以在服务器端使用类似于
localStorage
或cookies的东西来管理它
以下是本地存储示例:
$(document).ready(function() {
if( !window.localStorage || !window.localStorage.getItem('hpAnim') ) {
setTimeout(function() {
$("#loader-wrapper .loader-section, #textbit, #logo, #wrapper").hide("slow");
$("#wrapper").unwrap();
}, 11000);
if( window.localStorage ) {
window.localStorage.setItem('hpAnim', true)
}
}
} );
所以现在(在IE8+中)第二次和以后的页面加载将不会运行动画
另一方面,如果您有一个单页JavaScript应用程序,并且希望它仅在页面刷新后重新运行(根据问题的注释),那么您可以跳过本地存储,只需在窗口上设置一个全局变量:
window.hasSeenAnimation = true
然后在再次运行动画之前检查该条件。页面刷新后,该变量将消失。在用户第一次等待11秒时设置cookie 可以使用或与本机javascript代码一起使用 您还可以使用localstore变量或url查询
$(document).ready(function() {
if ($.cookie("index_viewed") == 1) {
return;
} else {
setTimeout(function() {
$("#loader-wrapper .loader-section, #textbit, #logo, #wrapper").hide("slow");
$("#wrapper").unwrap();
$.cookie("index_viewed", 1);
}, 11000);
}
});
您可以设置一个
$\u GET
变量,然后检查该变量。如果存在,则必须是内部链接,因此不要加载动画:
<a href="http://yoursite.com/?noAnim">Home</a>
<?php
if (!isset($_GET['noAnim']))
{
?>
<script>
// your animation script goes here....
</script>
<?php
}
?>
//你的动画脚本在这里。。。。
假设您只希望动画在“启动”时运行(当直接指向时),您可以检查选项卡历史记录计数:
history.length
只有在选项卡上进行了任何导航(从任何其他页面转到索引)时,才会返回大于1的值。
但这并不是一个完美的解决方案:
- 跨浏览器问题(一些返回0,其他返回1)
- 此选项卡上的每个导航都将生成历史记录,因此,如果您在检查任何其他页面后导航到您的网站,历史记录将返回一个高于初始值的值。(您也可以查看文档。referer以缓解此问题)
如果您不能在这些情况下跳过动画,您必须坚持动画已经运行的事实,并且您应该以本地存储为目标,例如(如前所述)我不明白,您是说希望动画在索引页上运行吗,但是你不希望它在点击
a
后在索引页上运行吗?我有点困惑。你想让它只在第一次有人访问索引页面时运行,而不是第二次、第三次等吗?如果是这样,你将不得不使用cookies或会话信息。这有点不清楚你在问什么。动画是用CSS制作的吗?JS?你不能只点击$('everything')。删除()
点击a
?几乎,一旦动画完成,就会被打开,但是如果你点击徽标返回到整个站点中的索引页,每次都会自然而然地带你回到动画中。。。我想在用户只看了一次动画之后阻止这种情况发生(除非他们刷新浏览器)。如果您希望代码出现在页面上但不执行,那么您需要定义一些执行它的条件。那是什么情况?如果是“用户已经看过这部动画了吗”,那么你打算如何跟踪这段信息呢?这真是太酷了,而且我认为这在这里很管用。。。所以只有清除缓存,他们才能再次看到动画?基本上是这样。我刚刚更新,以显示你会如何做,所以它重置页面刷新。H iNada,谢谢你的答复。。。由于某种原因,我无法让它工作,它只是在循环中运行?也许本地运行是问题所在,嗯