前言

在前端的页面布局中,制作一个区域内的滚动条是必备的基础知识,但是有很多刚入门的同学可能摸不到头脑,不知道该如何入手。那么本文将从代码实例为大家分享一个简单的教程。

首先,作为常识大家需要知道你制作的滚动条是属于div的还是页面的,你希望的页面鼠标滚动是调用哪里的,很多时候小伙伴们搞不清楚页面的和容器部分的。一定要清楚的知道你的产品布局中,这时候滚动希望是哪部分页面内容视图发生变化。

实例

实现思路

关键词: 视口,内容容器,内容

视口:也就是你需要展示内容的窗口大小,默认情况下页面的视口就是screen大小,页面的滚动,任何元素覆盖区域内的滚动调用的都是页面的滚动。异常情况就是div内有滚动区域,那么鼠标在当前元素焦点的时候,触发的是元素内内容的滚动,不会触发页面的滚动。这也是该布局实现的基本原理之一。当你控制决定好视口大小之后,对于超出区域设置超出不可见。

内容容器:内容容器就是你存放不定高度内容的容器,大小与视口大小完全一致。它是实现滚动布局的关键容器,需要设置超出区域自动,自动的含义就是不超过高度无滚动条,超出大小出现滚动条,当你在该内容容器触发鼠标滚动时触发滚动条。

内容:存放不定高度的内容,你的内容如果包含多个div或者其他元素都需要放入这个元素中。

效果:从效果上看,区块元素内的滚动布局特别像iframe的窗口载入一个新的页面dom,如果你和产品或设计不好沟通,你可以用iframe或者说新打开的浏览器窗口来跟他解释这个效果。
超出容器的滚动布局 - 图1

代码

  1. <div class="par">
  2. <div class="container">
  3. <p class="container-cont">111111</p>
  4. </div>
  5. </div>
  6. <!--css 开始 -->
  7. .par{
  8. width:100px;
  9. background:red;
  10. height:100px;
  11. overflow:hidden;
  12. position:relative
  13. }
  14. .par .container{
  15. position:absolute;
  16. width:100px;
  17. left:0;
  18. top:0;
  19. bottom:0;
  20. overflow:auto;
  21. }
  22. .par .container .container-cont{
  23. height:1000px;
  24. }

codepen案例

codepen案例地址