2013-12-13 61 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