当前位置:首页 > JavaScript

js实现滚动条

2026-01-30 09:44:13JavaScript

监听滚动事件

通过 window.addEventListener('scroll', callback) 监听页面滚动事件。回调函数中可获取当前滚动位置 window.scrollY(垂直方向)或 window.scrollX(水平方向)。

window.addEventListener('scroll', () => {
  console.log('当前垂直滚动位置:', window.scrollY);
});

平滑滚动到指定位置

使用 window.scrollTo() 方法实现滚动,通过 behavior: 'smooth' 启用平滑动画效果。

js实现滚动条

// 滚动到页面顶部
window.scrollTo({
  top: 0,
  behavior: 'smooth'
});

// 滚动到特定元素
document.getElementById('target').scrollIntoView({
  behavior: 'smooth'
});

自定义滚动条样式

通过 CSS 修改滚动条外观,适用于 WebKit 内核浏览器(Chrome、Edge、Safari)。

/* 垂直滚动条 */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 4px;
}

禁止页面滚动

通过 document.body.style.overflow = 'hidden' 临时禁止页面滚动,常用于弹窗出现时。

js实现滚动条

// 禁止滚动
document.body.style.overflow = 'hidden';

// 恢复滚动
document.body.style.overflow = '';

获取元素滚动位置

使用 element.scrollTopelement.scrollLeft 获取容器内滚动位置,适用于 div 等可滚动元素。

const div = document.querySelector('.scrollable-div');
console.log('垂直滚动位置:', div.scrollTop);

滚动事件节流优化

高频滚动事件可能影响性能,通过 setTimeoutrequestAnimationFrame 节流处理。

let ticking = false;
window.addEventListener('scroll', () => {
  if (!ticking) {
    requestAnimationFrame(() => {
      // 执行实际逻辑
      ticking = false;
    });
    ticking = true;
  }
});

标签: 滚动条js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…