# backtop **Repository Path**: stillsailing/backtop ## Basic Information - **Project Name**: backtop - **Description**: Javascript 实现返回页面顶部或者滚动到指定的 HTML 元素,简单快捷易用。 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-06 - **Last Updated**: 2022-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # backtop.js [English Document]() Javascript 实现返回页面顶部或者滚动到指定的 HTML 元素,简单快捷易用。 1. JavaScript 实现,支持任何框架 2. 多种兼容实现方式 3. 轻量 ## 一、使用 ### 安装 ```bash # npm npm i backtop.js --save ``` ### 调用 ```js import backtop from 'backtop.js'; document.querySelector('#button').addEventListener('click', () => { backtop({ type: 'smooth', element: document.querySelector('#title'); // 不传 HTML 节点时默认返回网页顶部 }); }); ``` ### 配置项说明 - `type?: 'smooth' | 'instant'` 瞬间返回或是平滑过渡,默认 `smooth` - `element?: HTMLElement` 要滚动到的元素,没有该参数时默认返回网页顶部 - `speed?: number` 平滑过渡速度,`type` 为 `'instant'` 时无效 - `onStart?: () => {}` 返回开始回调 - `onBack?: () => {}` 返回进行中回调 - `onEnd?: () => {}` 返回结束回调 ## 二、原理 ### 返回顶部 采用 `window.scroll` 实现返回顶部的瞬间返回或者平滑处理。当要求返回速度时,使用 `requestAnimationFrame` 或者 `setInterval` 实现。 ### 滚动到指定元素 采用 `scrollIntoView`、`scrollIntoViewIfNeeded`、`getBoundingClientRect` 计算实现,同样当要求返回速度时,使用 `requestAnimationFrame` 或者 `setInterval` 结合实现。