美文网首页
来滚——你不知道的scroll~

来滚——你不知道的scroll~

作者: 金小可 | 来源:发表于2016-07-28 20:30 被阅读206次

今天来和大家一起学习页面的滚动,介绍几种常用滚动场景的处理方式,以及平时可能会遇到的一些小坑。

一、为啥可以滚动

我们编写的页面在内容长度超过屏幕时,会自动通过滚动的方式进行展示,这是因为我们的body默认拥有滚动的属性overflow:scroll。

那么,如果在某种场景下使用了

 body {
    overflow: hidden;
}

你会发现整个世界都安静了。。。

二、各自滚——两列滚动

聪明的小伙伴,肯定SX才会如此对待body元素。
有时候不得不承认PM会有一些SX的需求,但是导致body无法滚动的需求还是可能出现的。

下面在body无法滚动的情况下,一起探索两列各自滚动布局的实现。

 <div style="overflow: scroll">
     警告:这里有很长很长的文字,长得根本没办法一屏显示完全。。。
</div>

实践出真知,这样做是不行的。

Try another:

<div style="overflow: scroll">
    <p>
        警告:这里有很长很长的文字,长得根本没办法一屏显示完全...
        重点:元素具有scroll属性时,它所包含的内容(标签)元素在无法    
             完全显示时,可以通过滚动的方式查看...
    </p>
</div>

核心已经完成了,两列滚动只需要再做一个水平布局就可以了,小伙伴们可以自由联系。
参考:

<div style="overflow: scroll; position: fixed; width: 30%; height:100%">
    <p>
        警告:我是左边很长很长的文字,长得根本没办法一屏显示完全...
        坑:一定要有高度哦,也可以是固定值哦~
    </p>
</div>
<div style="overflow: scroll; width: 70%; margin-left: 30%; height:100%">
    <p>
        警告:我是右边很长很长的文字,长得根本没办法一屏显示完全...
        坑:一定要有高度哦,也可以是固定值哦~
    </p>
</div>

Perfect?然而,并不是...


two_column.jpg

三、只滚不跳——去掉滚动条

前面的实现已经达到了需求的效果——两列各自滚。
但是在windows的chrome上出现非常浓重的两个滚动条,设计的美感瞬间没有了。(为啥mac上的chrome表现的很任性呢?)
接下来我们来探讨,怎样去掉视觉障碍——滚动条。

目前可以找到的最简单的方法,使用伪元素:

::-webkit-scrollbar{width:0px}

然而该方法只适用于webkit内核(chrome、safari),大家都很奇怪CSS在想什么?

然而布局的灵活性,总归是有聪明的小伙伴找到了方案——覆盖,即用其他的区域盖住滚动条。

现在就去掉中间那个显眼的滚动条:

<div style="overflow: hidden; position: fixed; width: 30%; height:100%">
<div style="overflow: scroll; position: fixed; width: calc(30% + 20px); height: 100%">
    <p>
        警告:我是左边很长很长的文字,长得根本没办法一屏显示完全...
        坑:一定要有高度哦,也可以是固定值哦~
    </p>
</div>
<div style="overflow: scroll; width: 70%; height: 100%; margin-left: 30%">
    <p>
        警告:我是右边很长很长的文字,长得根本没办法一屏显示完全...
        坑:一定要有高度哦,也可以是固定值哦~
    </p>
</div>

OVER,效果完美。

no_scroll_bar.jpg

需要补充的两点:
1、在具体使用时可以调整内容元素的padding适配显示效果;
2、这里默认滚动条的宽度为20px,在实际使用中可以尽量大一点;

四、这里是评论区,欢迎写下你的坑

1、ios移动设备滑动艰难
-webkit-overflow-scrolling: touch;

2、更多精彩,期待你的参与~

相关文章

  • 来滚——你不知道的scroll~

    今天来和大家一起学习页面的滚动,介绍几种常用滚动场景的处理方式,以及平时可能会遇到的一些小坑。 一、为啥可以滚动 ...

  • vimium 快捷键

    Vimium 快捷键导航功能j, 下滚k, Scroll up 上滚gg滚...

  • 微信小程序fixed定位后scroll-view滚动失效问题

    如图微信小程序中 scroll-view组件外div加display:flxed后, scroll-view组件滚...

  • 滚轮事件对比

    keywords: scroll、wheel、mousewheel、DOMMouseScroll 最近研究自定义滚...

  • 微信小程序scroll-view横向滚共不生效

    微信小程序scroll-view横向滚共不生效 css文件要求 一定要将scroll-view容器设置宽度,并设置...

  • JS14

    轮播图 选项卡 一、Scroll事件 元素内部内容的滚动 --内容向左滚动, 滚动条向右 1.有滚...

  • 有赞商城总结

    首页 ul列表触底加载更多数据使用外部UI库mint-ui,infinite-scroll无限滚动指令,实质就是滚...

  • 回家

    “你给我滚!!!”李冰用尽全身力气将手边的玻璃花瓶砸向他。 “滚就滚,你可别后悔!”他躲开了砸来的瓶子,吼叫着冲出...

  • Google插件Vimium快捷键

    j, :Scroll down k, :Scroll up h:Scroll left l:Scroll righ...

  • 滚,滚,滚,你给我滚

    我是一个感性的人,容易被一些细小的事情所感动、所影响。 感性的人容易感知快乐,但同时也容易被负面情绪牵扯。消极情绪...

网友评论

      本文标题:来滚——你不知道的scroll~

      本文链接:https://www.haomeiwen.com/subject/mxarjttx.html