当我们给元素加上 overflow: auto; 的时候,就会出现滚动条,然而浏览的不同,滚动条的样式大不一样,有些甚至非常丑。 于是就想着自己写一个滚动条,大概需要弄清楚一下这几个点: 1、滚动条 bar 是根据内容的多少,高度不一样的,这个需要动态的计算 2、滚
当我们给元素加上 overflow: auto; 的时候,就会出现滚动条,然而浏览的不同,滚动条的样式大不一样,有些甚至非常丑。
wrap 为最外层,给overflow:hidden;。 box-middle 是中间层,也是有滚动条的一层,可以宽度给多一点,这样就看不见滚动条了。 box就是内容层,通过js,计算使得 box 的宽度和wrap 保持一致,这样就完全看不见滚动条了 bar 为滚动条 写js之前,首先要弄懂一下三个属性:
1、计算比例: bar的高度 / wrap的高度 = wrap的高度 / wrap 内容部子元素的高度和 ; 此时忽略 wrap 的padding:0 bar的top / wrap的scrollTop = wrap的高度 / wrap 内容部子元素的高度和 ; 需要注意,当比例 的 值 小于 1 的时候,说明 这个时候没有出现滚动条。 知道算法之后,写代码就简单很多,普通版代码如下:
使用面向对象版:
最后看一下效果: 虽然效果很丑,但是可控,自己调一下就可以了 |
2021-06-04
2019-01-10
2019-02-17
2021-09-12
2021-09-30