首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 固定左侧 右侧滚动条

在JavaScript中实现固定左侧内容,右侧滚动条滚动的效果,通常涉及到CSS布局和JavaScript的事件处理。以下是实现这一效果的基础概念和相关步骤:

基础概念

  1. CSS Flexbox:用于创建灵活的布局,可以轻松地实现固定和滚动区域的分离。
  2. CSS Positioning:使用position: fixed可以使元素相对于视口固定位置。
  3. JavaScript Event Handling:监听滚动事件,以便在滚动时执行特定的操作。

实现步骤

HTML结构

代码语言:txt
复制
<div class="container">
  <div class="sidebar">左侧固定内容</div>
  <div class="main-content">右侧滚动内容</div>
</div>

CSS样式

代码语言:txt
复制
.container {
  display: flex;
  height: 100vh; /* 使容器占满整个视口高度 */
}

.sidebar {
  width: 200px; /* 固定宽度 */
  position: fixed; /* 固定位置 */
  top: 0;
  left: 0;
  bottom: 0;
  background-color: #f4f4f4;
  padding: 15px;
}

.main-content {
  margin-left: 200px; /* 与侧边栏宽度相同,避免内容重叠 */
  overflow-y: auto; /* 允许垂直滚动 */
  padding: 15px;
}

JavaScript(可选)

如果你需要在滚动时执行某些操作,可以添加JavaScript事件监听器:

代码语言:txt
复制
window.addEventListener('scroll', function() {
  // 在这里处理滚动事件
  console.log('页面正在滚动');
});

应用场景

  • 仪表板应用:左侧固定导航栏,右侧显示不同的数据面板。
  • 电商网站:左侧分类菜单固定,右侧展示商品列表。
  • 文档页面:左侧目录固定,右侧显示具体文档内容。

可能遇到的问题及解决方法

  1. 滚动条不出现:确保.main-content的高度超过了视口高度,或者设置了overflow-y: auto
  2. 布局错乱:检查.sidebar.main-content的宽度设置,确保没有重叠。
  3. 性能问题:频繁的滚动事件可能导致性能问题。可以使用节流(throttling)或防抖(debouncing)技术来优化事件处理函数。

示例代码

以下是一个完整的示例,包括HTML、CSS和JavaScript:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Fixed Left, Scrollable Right</title>
<style>
  .container {
    display: flex;
    height: 100vh;
  }
  .sidebar {
    width: 200px;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    background-color: #f4f4f4;
    padding: 15px;
  }
  .main-content {
    margin-left: 200px;
    overflow-y: auto;
    padding: 15px;
  }
</style>
</head>
<body>
<div class="container">
  <div class="sidebar">左侧固定内容</div>
  <div class="main-content">
    <!-- 右侧滚动内容 -->
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit...</p>
    <!-- 更多内容 -->
  </div>
</div>

<script>
  window.addEventListener('scroll', function() {
    console.log('页面正在滚动');
  });
</script>
</body>
</html>

通过以上步骤和代码,你可以实现一个左侧固定,右侧带有滚动条的布局。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

css经典布局之左侧固定大小右侧自动适应

最近学习了一种经典布局,固定左侧或右侧的宽度,另一侧自适应宽度,此种布局挺常用,尤其是像后台,大部分都是采用这种结构,还比如像订餐类的APP,进入商家的时候,会出现一堆饭的列表,左侧是饭的分类,右侧是饭的列表等等...content=""> 左侧固定...,右侧自适应 左侧固定,右侧自适应布局 左侧变窄时,右侧自动变宽;当左侧变宽时,右侧自动变窄,下面来实现一下: js代码,在这之前,需要注释css中的以下三行代码 .left{ position:relative; float...=doc.querySelector(".toggle-btn"), //左侧容器和右侧容器,实际上就只需要操作这两个元素 leftContainer=doc.querySelector

2K00
  • css左侧固定宽度,右侧自适应的几种实现方法

    左侧固定,右侧自适应或者右侧固定在,左侧自适应是一样的。这种布局很常见,而且面试过程中也经常会问到,这里我总结的方法一共有5种。要实现这种布局,也算比较简单。...我们先给出html结构: 固定宽度区 <div id="content...下面列举几个常见的方法: 1.固定宽度区浮动,自适应区不设宽度而设置 margin 我们拿右边定宽左边自适应来做示范,CSS代码如下: #wrap { overflow... 2.固定宽度区使用绝对定位,自适应区照例设置margin 我们把sidebar扔掉,只对content设置margin,那么我们会发现content的宽度就已经变成自适应了—...前四种方法转载自老生长谈:css实现右侧固定宽度,左侧宽度自适应。这里主要是将各种方法进行汇总。我目前了解到的方法主要是这些,如果大家还有其他方法的请留言分享

    2.7K20

    算法题:把列表右侧 k 位数依次移动到左侧

    给定一个非空列表和一个非负整数 k,把列表右侧的 k 位依次移动到左侧。例如:[1, 2, 3, 4, 5, 6],n 为3,则移动以后,变为:[4, 5, 6, 1, 2, 3]。...for i in range(k): target_list.insert(0, target_list.pop()) 其中,列表的.pop()方法每次可以从列表中返回并删除最右侧的一个元素...再使用.insert()把弹出的这个数插入到列表的最左侧。 但这样做有一个问题——虽然.pop()的时间复杂度为 O(1),但是.insert()的时间复杂度为 O(n)。...也就是说,当我在列表最左侧插入一个元素时,列表里面每一个元素都要向右移动 1 位。如果我们要把列表里面右侧 k 个数依次移动到列表左侧,时间复杂度就是O(kn)。

    28210

    自适应表头和左侧列固定的表格

    但是当表格数据过多时,在同一个屏幕下无法完全展示,出现滚动条后,表头部分就被盖住,很容易不清楚看的当前列所代表的意义。...,让左侧一列固定,右侧部分可以滑动,则可以方便的知道自己看的是哪一行。...该表格的三部分分别为:顶部,左侧,中间。中间部分以列为分割点。...左侧部分和中间部分的行的背景色以斑马线的形式分布,odd的颜色为深色 中间部分: 中间部分每m-scroll-col为一列,每列中m-section为一组(类似于左侧部分) 在js中 //设置头部位置...来看一下整体的js代码 /* * create by zhangxiaojian * */ // ku_pub // 公共库 function $$(obj){ return document.getElementById

    4K10
    领券