虽然niceScroll插件非常好用,毕竟不依赖css,但是只有js才能设置出好看的滚动条。
最近项目中使用了niceScroll,表格中有水平滚动条。滚动条竖起来很容易错位,就是滚动条会浮在空中,不在div的底部或者右边。打开f12,可以看到滚动条并不是直接定位在div中,而是在全身的末端,与要定位的div处于同一水平,这就导致了这个bug,尤其是IE下,滚动条到处飞。
在网上找了很多资料,似乎都不是这样。也许他们的项目没有那么多水平滚动条。
为了解决这个问题,我们的想法是在div中设置滚动条,这样它就不会浮动了。经过多次测试发现,position:absolute定位在要设置的div上,这样滚动条就会嵌套在里面,不会出现随机悬浮和错位的情况。
没有定位时,滚动条在正文的末尾,如图:
定位的滚动条位于div中,如图所示:
我使用wex5网格表,在网格线中添加类名gridPositon作为绝对定位,然后在它的父级中设置为相对定位,“子级永远不会是父级”。这次操作后,滚动条悬浮错位的问题解决了,但是IE下出现了一个新的bug,就是鼠标悬停和
点击选择无颜色,(-ie),再设置两个div层,解决了ie下无颜色的问题。所以最终结构如下:
总结:只要div绝对定位,滚动条就嵌套在里面。那个ie下面没有颜色,因为它相对直接定位在它的父窗口,所以我把它改成相对定位在最外面的窗口,这样我就不用费心修改它的结构了。
以上jQuery niceScroll bar错位的解决方案,就是边肖与大家分享的全部内容。希望能给大家一个参考,多支持我们。