js 平滑滚动到页面指定位置
时间: 2023-08-08 20:05:03 浏览: 89
可以使用以下的 JavaScript 代码实现平滑滚动到页面指定位置:
```javascript
function smoothScroll(target, duration) {
var targetElement = document.querySelector(target);
var targetPosition = targetElement.offsetTop;
var startPosition = window.pageYOffset;
var distance = targetPosition - startPosition;
var startTime = null;
function animation(currentTime) {
if (startTime === null) startTime = currentTime;
var timeElapsed = currentTime - startTime;
var run = ease(timeElapsed, startPosition, distance, duration);
window.scrollTo(0, run);
if (timeElapsed < duration) requestAnimationFrame(animation);
}
function ease(t, b, c, d) {
t /= d / 2;
if (t < 1) return c / 2 * t * t + b;
t--;
return -c / 2 * (t * (t - 2) - 1) + b;
}
requestAnimationFrame(animation);
}
```
你需要传递两个参数:目标元素的选择器和持续时间(以毫秒为单位)。例如,要平滑滚动到 ID 为 "section2" 的元素,你可以使用以下代码:
```javascript
smoothScroll('#section2', 1000);
```
这将使页面平滑滚动到 ID 为 "section2" 的元素,持续时间为 1000 毫秒。
阅读全文