【问题标题】:Anchor tags jumping in Chrome because of URL?由于 URL,锚标签在 Chrome 中跳转?
【发布时间】:2015-10-16 22:50:03
【问题描述】:

导致跳转的锚点标签:在 chrome 中,而不是 firefox(在 Firefox 中工作正常),当从我的“工作”页面转到我的联系锚点然后单击 about 时,锚点跳转到我的 about 然后立即返回到联系锚点.我认为这与我以#gocontact 结尾的网址有关。很难找到问题。

$(document).ready(function(){
    $('a[href^="#"]').on('click',function (e) {
        e.preventDefault();
        var target = this.hash;
        var tOffset = $(target).offset().top
        var offAmt;

        //determine the amt of padding needs to be offset on scrollTop
        if( target == '#goContact'){
            offAmt = 90;
        }else if( target == '#goAbout'){
            offAmt = 120;
        }else{
            offAmt = 0;
        }//end else

        //smooth scrolling
        $('html, body').stop().animate({scrollTop: tOffset - offAmt},900, 'swing');
    });
}); 

$(document).scroll(function(){

    console.log( 'scrolltop', $(document).scrollTop() );

    var scrolltop = $(document).scrollTop();

    //get bottom of screen
    var scrollheight = scrolltop + $(window).height();

【问题讨论】:

  • 我遇到了同样的问题 e.preventDefault();适用于除 Google Chrome 以外的所有浏览器(我正在运行版本 46.0.2490.86(64 位))。
  • 即使这个小提琴在 chrome 中也不适合我:jsfiddle.net/3ASpX/1

标签: jquery google-chrome anchor


【解决方案1】:

我无法在 chrome 中重现该问题。我点击“工作”,然后点击“联系”,然后点击“关于”,一切都滚动到我所看到的正确位置。

由于屏幕中间延迟加载的六边形图像,屏幕第一次滚动到顶部或底部(关于/联系部分)时会有一点延迟,但除此之外,一切似乎都正常了到它应该的地方。

一些建议是清除您的缓存(也许您会看到一些未更新的旧 js 的结果),您也可以更改 == in 使用三等号将 (target == "whatever") 转换为 (target === "whatever") 以进行更精确的检查。

【讨论】:

  • 感谢您的回复,我让一个朋友尝试但没有收到错误。在我的机器上,我每次都清除缓存。从工作到 about 或 contact 然后该页面上的锚点不断跳跃
猜你喜欢
  • 2012-05-13
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
相关资源
最近更新 更多