锚标记直接链接需要过度骑行

时间:2012-04-17 02:55:45

标签: jquery css redirect hash

http://2012.delineamultimedia.com/#home_contact

我知道这有点hacky但是,我需要这个链接和其他锚标记来做同样的事情。 当转到此链接时,页面(部分)的标题被阻止,因为固定导航覆盖了内容...

我正在使用scrollto jQuery插件并在它到达时给它一个负边距顶部以补偿固定导航...这是一个例子......

<script type="text/javascript">
$(function() {
  $('ul.nav a').bind('click',function(event){
    var $anchor = $(this);

     $('html, body').stop().animate({
     scrollTop: $($anchor.attr('href')).offset().top-139
     }, 1500,'easeOutBounce');

     event.preventDefault();
     });
 });
</script>


问题是这只有在触发scrollto函数时才有效。所以,我一直在尝试执行以下操作,我需要帮助才能使其工作,以便当有人直接链接到哈希标记http://2012.delineamultimedia.com/#home_contact或任何其他人时,页面知道向下移动额外的空间它清除了导航。

<script type="text/javascript">
$(document).ready(function(){
function checkHash() {
    if (location.hash === "#home_contact") {
        navClick('#home_contact');
    }
    else if (location.hash === "#/index.html") {
        navClick('index.html');
    }
}
window.onhashchange = checkHash;
window.onload = checkHash;
});
</script>


这一点是在单击哈希链接时激活navItem。由于某些原因,这不起作用,任何人都可以帮助我让这个工作吗?在此先感谢您的时间!我希望这很有道理,很难解释。

1 个答案:

答案 0 :(得分:0)

我会依靠你现有的功能。在页面加载时触发导航上的点击事件。

 $(document).ready(function(){
       switch(location.hash){
             case '#home_contact':
                 $('a.contact-nav').trigger('click');
                 break;
             default:
                 $('#top_logo a').trigger('click');
                 break;
       };     
 });

换句话说。单击您的导航已经可以使用,您可以重复使用该功能。