JavaScript >> Javascript 文檔 >  >> jQuery

如何使用 jQuery 平滑滾動到頁面部分

對於單頁模板和網站,在單擊錨鏈接時滾動到頁面部分是一種常見的做法。這是一個小的 jQuery hack,當訪問者單擊導航菜單中的錨鏈接(或頁面上的任何其他位置)時,我經常使用它來平滑滾動到頁面部分。調整滾動速度值1000 到任何你想要的速度。該值以毫秒為單位。

$(document).on('click', 'a[href^="#"]', function (e) {
    e.preventDefault();
    $('html, body').stop().animate({
        scrollTop: $($(this).attr('href')).offset().top
    }, 1000, 'linear');
});

下面是導航和部分的 HTML 標記的樣子:

<nav>
  <a href="#features">Features</a>
  <a href="#faq">FAQ</a>
  <a href="#pricing">Pricing</a>
</nav>
<!--main container-->
<div class="container">
    <!--feature section-->
    <section id="features">...</section>
    <!--faq section-->
    <section id="faq">...</section>
    <!--pricing section-->
    <section id="pricing">...</section>
</div>

不想使用 jQuery?您也可以使用 vanilla JavaScript 進行平滑滾動,但它可能不適用於舊瀏覽器:

document.querySelectorAll('a[href^="#"]').forEach($anchor => {
    $anchor.addEventListener('click', function (e) {
        e.preventDefault();
        document.querySelector(this.getAttribute('href')).scrollIntoView({
            behavior: 'smooth',
            block: 'start' //scroll to top of the target element
        });
    });
});

也不是原生 JavaScript 的忠實粉絲?這是純 CSS 3 解決方案,但它只適用於最新的瀏覽器:

html {
    scroll-behavior: smooth;
}

Tutorial JavaScript 教程
  1. `string.replace` 使用美元符號 ($) 作為替換時的奇怪行為

  2. 關於 NPM 的說明

  3. 帶有示例的 React 17 響應式輪播教程

  4. 代碼和 Scrum 100 天中的第 98 天:SQL 星期日

  5. 又翻了一堵牆

  6. JavaScript 挑戰 2:單詞打亂

  7. 在一篇博客中使用 TypeScript

  1. 使用 React Native 創建抽屜式導航

  2. [Step-by-Step] 使用 Express、Mongo、Docker 和 Babel 使用 NodeJS 創建應用程序

  3. React 18 中的並發渲染

  4. Minimal React + Webpack 4 + Babel 7 項目設置初學者指南

  5. 是 Webpack 還是 Node?

  6. Eloquent Javascript 評論 #Introduction

  7. 在幾分鐘內將 AR 和 3D 模型添加到任何站點

  1. 如何在 Mirage js 中播種具有多態一對一關係的模型?

  2. JavaScript 中的 Tab 鍵按下事件 |示例代碼

  3. Node.js - 現代 JavaScript

  4. WebGL 2.0 - Web 上的高級可視化活動