You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript实现纵向滚动条出现时隐藏右侧边框

页面出现垂直滚动条时自动隐藏元素右侧边框实现方案

方案1:纯CSS实现(现代浏览器兼容)

依赖CSS :has 伪类实现滚动条状态判断,兼容Chrome 105+、Safari 15.4+、Firefox 121+版本,无需编写JS代码:

/* 匹配存在垂直滚动条的页面 */
html:has(body.scrollHeight > body.clientHeight) .target-element {
  border-right: none;
}

/* 默认带边框的目标元素样式 */
.target-element {
  border-right: 2px solid #333;
  /* 其余元素自定义样式 */
}

方案2:JS实现(全版本兼容,可控性高)

通过JS监听页面状态变化判断滚动条是否存在,兼容性覆盖所有主流浏览器,适合生产环境使用:

  1. 先定义两种状态的CSS样式
.target-element {
  border-right: 2px solid #333;
  /* 其余元素自定义样式 */
}
/* 滚动条出现时生效的隐藏边框样式 */
.target-element.hide-right-border {
  border-right: none;
}
  1. 编写JS逻辑实现状态自动更新
// 检测是否存在垂直滚动条
function checkVerticalScroll() {
  return document.documentElement.scrollHeight > document.documentElement.clientHeight;
}

// 更新目标元素边框状态
function toggleBorder() {
  const target = document.querySelector('.target-element');
  if (!target) return;
  checkVerticalScroll() ? target.classList.add('hide-right-border') : target.classList.remove('hide-right-border');
}

// 绑定触发事件
window.addEventListener('load', toggleBorder);
window.addEventListener('resize', toggleBorder);
// 若页面有动态插入的内容,新增DOM监听器自动触发状态更新
const domObserver = new MutationObserver(toggleBorder);
domObserver.observe(document.body, { childList: true, subtree: true });

注意事项

  • 代码中的.target-element需要替换为你实际需要修改边框的元素选择器
  • 动态内容较多的场景建议保留MutationObserver监听,避免内容更新后状态不同步

内容的提问来源于stack exchange,提问作者Sachin Mane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 23:48:03