【问题标题】:Anchor Tag Direct Link Needs to Over-Ride锚标记直接链接需要覆盖
【发布时间】:2012-04-28 09:26:04
【问题描述】:

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

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

我正在使用 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>


问题是这仅在触发滚动功能时才有效。因此,我一直在尝试执行以下操作,我需要帮助才能使其正常工作,以便当有人直接链接到哈希标签 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。出于某种原因,这不起作用,任何人都可以帮我让它工作吗?在此先感谢您的时间!我希望这是有道理的,很难解释。

【问题讨论】:

    标签: jquery css redirect hash


    【解决方案1】:

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

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

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

    【讨论】:

    • 这个脚本没有抛出错误,但是它也不起作用。 2012.delineamultimedia.com/#home_contact
    • 我可以这样做吗? &lt;script type="text/javascript"&gt; $(document).ready(function(){ switch(location.hash){ case '#home_contact': $('#home_contact').trigger('click').css('margin-top', 139); break; default: $('#home_top').trigger('click'); break; }; }); &lt;/script&gt;
    • 我不打算将它作为即插即用,只是为了清楚起见。你把它放在哪里了?它也不是页面那部分的选择器,触发点击导航本身中的项目。
    • 我把代码放在页脚。这很好用,但它没有转到页面中的正确位置。我需要它。偏移量...我将它添加到点击的末尾。这看起来对吗?由于某种原因,它并没有像我希望的那样上升。 $('a.contact-nav').trigger('click').offset().top-139;
    • 我确实看到了我们所做的,我们检查了哈希 -> 并在我们已经拥有的导航中触发了一次点击,因此 jquery 将被触发。对吗?
    猜你喜欢
    • 2022-08-09
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 2014-03-13
    • 1970-01-01
    相关资源
    最近更新 更多