Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试删除此代码而不需要将其放在单独的页面中_Javascript_Jquery_Html - Fatal编程技术网

Javascript 尝试删除此代码而不需要将其放在单独的页面中

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); }); 。。。。。所以,一旦这段代码

我的index.html页面有一个奇特的动画开始,它本质上是下面的代码

 $(document).ready(function() {
     setTimeout(function() {
       $("#loader-wrapper .loader-section, #textbit, #logo, #wrapper").hide("slow"); 
       $("#wrapper").unwrap();
    }, 11000);

 });
。。。。。所以,一旦这段代码运行了11秒,它就会被打开,这很好。。。问题是我有一个标签可以随时返回到索引页面,我不希望人们在每次进入主页之前都要等待简介动画的运行

我不会接受任何回答说..“做一个单独的页面上的动画”-代码必须在索引页本身

我希望有某种jquery可以在刷新浏览器页面之前删除代码,类似这样的东西。。非常感谢您的帮助

编辑——获得一些不清楚的初步反馈。。。为了……步调一致

  • 用户转到index.html
  • 上述代码开始并持续11秒
  • 然后它被打开并消失
  • 另外,当用户在享受网站时,他们会点击“主页”标志
  • 这会将人们带回index.html页面
  • 不幸的是,他们每次都要等待11秒,我希望这一切停止,除非他们刷新浏览器或其他东西

  • 您可以在服务器端使用类似于
    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,谢谢你的答复。。。由于某种原因,我无法让它工作,它只是在循环中运行?也许本地运行是问题所在,嗯