2013-12-13 27 views
0

我已经设置我的网站,通过使用scrollTop滚动到一个强制性的标题元素到某个div函数。我特别将它设置为滚动缓慢,以便用户“知道标题在那里”,但在后续页面上,我宁愿它只是从该滚动位置开始。我试图用一个简单的if/else语句来抓取wordpress页面(is_home)并将动画设置为1200,否则将动画设置为0.我甚至进入并设置了一个自定义字段is_home和True页面。但它仍然无法正常工作。任何想法如何解决if/else或者更好的实现方法的建议?改变window.load scrollTop基于页面的动画速度

if (is_home()) { 
    $(window).load(function() { 
     $('html, body').animate({ 
      scrollTop: $("#grey").offset().top 
     }, 1200); 
    }); 
} else { 
    $(window).load(function() { 
     $('html, body').animate({ 
      scrollTop: $("#grey").offset().top 
     }, 0); 
    }) 
} 

回答

0

那么,if(is_home())是从WordPress的API,这是不是在JS中可用的PHP语句。你可以在此基础上包含不同的脚本调用,但在我看来这是相当糟糕的做法。

确保下面的代码在你的插件和jquery之后执行。好地方可能会在wp_footer()

<?php 
if (is_home()) { ?> 
    <script> 
    $(window).load(function() { 
     $('html, body').animate({ 
      scrollTop: $("#grey").offset().top 
     }, 1200); 
    }); 
    </script>  
<?php } else { ?> 
    <script> 
    $(window).load(function() { 
     $('html, body').animate({ 
      scrollTop: $("#grey").offset().top 
     }, 0); 
    }); 
    </script> 
<?php } ?> 
+0

没错。对我来说愚蠢的错误。谢谢! – cebronix

+0

没问题。顺便说一句,我首先回答,上面的人复制:( – SMacFadyen

+0

移动的复选标记,但我不能upvote任何人。没有代表 – cebronix

0

您正在将PHP和JavaScript结合在一起。 is_home()是一个PHP语句 你需要如下重写代码:

<?php 
    if (is_home()) { 
?> 
     <script type="text/javascript"> 
      $(window).load(function() { 
       $('html, body').animate({ 
        scrollTop: $("#grey").offset().top 
       }, 1200); 
      }); 
     </script> 
<?php 
    } else { 
?> 
     <script type="text/javascript"> 
      $(window).load(function() { 
       $('html, body').animate({ 
        scrollTop: $("#grey").offset().top 
       }, 0); 
      }); 
     </script>   
<?php 
    } 
?> 

还可以使用jQuery,而不是$以避免冲突的任何其他JavaScript库

+0

太棒了。这很好。我不得不改变(is_home())到(is_front_page),但这正是我所需要的。我没有事件思考php vs js。谢谢! – cebronix

+0

@cebronix cool。标记为正确的,如果它帮助你:-) – Sabari