实现无滚动条滑动效果

原文地址:http://www.linzichen.cn/article/1569749875082395648

在网页中,有些宽高固定的区域,如果它们的内容高度或宽度超出了自身的宽高,会导致浏览器自身滚动条的出现。而不同内核的浏览器对滚动条的处理方式也不同,且局域块中出现滚动条不是特别美观,基于这种情况,我们常常选择隐藏滚动条且支持滑动的效果。如下图:

滚动.gif

比如我们要实现这种上下滑动且隐藏滚动条的效果,大致思路如下:

  1. 准备两个盒子,外盒子outer-box和内盒子inner-box
  1. ourter-box一个固定宽度,也就是原型图的宽度。比如200px
  2. inner-box支持上下滚动且出现滚动条。
  3. 设置 inner-box的 宽度比outer-box的宽度多一个滚动条的距离,如果不确定滚动条有多宽,这个距离可以给大一点,比如 50px
  4. 只需要让outer-box超出的部分隐藏,这样就可以把 inner-box多出来的宽(也就是滚动条)隐藏掉。

具体代码如下:

html部分:

  <div class="outer-box">
    <ul class="inner-box">
      <li>目录一</li>
      <li>目录二</li>
      <li>目录三</li>
      <li>目录四</li>
      <li>目录五</li>
      <li>目录六</li>
      <li>目录七</li>
      <li>目录八</li>
    </ul>
  </div>

css部分:

* {
      margin: 0;
      padding: 0;
      list-style: none;
      box-sizing: border-box;
    }
    .outer-box {
      width: 200px;
      height: 300px;
      margin: 20px auto;
      background-color: #cccccc;
      /* 隐藏inner-box多出来的宽,也就是我们认为的滚动条的宽度 */
      overflow: hidden;
    }
    .inner-box {
      height: 100%;
      overflow-y: auto;
      /* 不确定滚动条的宽度,所以这里给50px 足够了 */
      width: calc(100% + 50px);
    }
    li {
      padding: 20px;
      width: 200px;
    }
    ul li:nth-child(2n) {
      background-color: #aaaaaa;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值