簡體   English   中英

在非錨散列鏈接上禁用平滑滾動?

[英]Disable Smooth Scrolling on Non-Anchor Hash Link?

我有一些jQuery可以平滑滾動:

$(document).on('click', 'a[href^="#"]', function (event) {
    event.preventDefault();

    $('html, body').animate({
        scrollTop: $($.attr(this, 'href')).offset().top
    }, 1400);
});

效果很好,除了頁面上還有一些使用哈希鏈接的標簽。 單擊每個選項卡時,頁面將滾動到屏幕頂部。

只有在將特定錨添加到哈希(例如/#features)時,才有辦法使這種平滑滾動工作,而僅當它是哈希(例如/#)時不起作用。

您可以添加:not()選擇器,以消除href="#"觸發click事件。

 $(document).on('click', 'a[href^="#"]:not([href=#])', function(event) { console.log("Clicked"); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="#">Hash Only</a> <a href="#Anchor1">Anchor 1</a> <a href="#Anchor2">Anchor 2</a> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM