原理

设置一个块级作用域溢出的效果,只需要在外部块的位置上设置overflow:scroll和height:xx即可。

此时,块级作用域的内容位移超出外部块的位移就会出现滚动条,当内部块滚动时,我们能看到滚动效果。这里的实现方式有二种,对父元素(简称外部块)进行设置(top:0和bottom:0)能固定滚动区域,还有一种设置父元素的高度height:xx来完成滚动效果。

如果你看到的滚动条是浏览器边缘的滚动条,那么说明没有绑定scroll滚动事件。

以往,我们使用他是为了不让文本内容暴露出来,把子元素和父元素的资源隔绝开来,如果要通过一个http端口访问包含的数据内容,一般要加载数据时会使用这个方法,用户鼠标滚动到相应的位置才会去同步加载数据,如一个页面的list列表数据从后台获取,通过ajax更新数据同步到HTML上。还有滚动绑定事件的作用,这就是视觉交叉的功能。

滚动事件

overflow滚动包含overflow-x 和overflow-y 以及overflow直接滚动多余的部分,不过水平滚动和垂直滚动的效果不同,我们可以根据滚动的width宽和height高的大小来做不同的滚动事件处理。

三个关键

overflow滚动的事件处理,在css上要写三个关键因素,一为position:absolute,二为overflow:scroll,三为top:位移,bottom:位移(或height固定),如果我们在组件上调用其他事件时,使用到overflow滚动的效果,就会让组件变得更加丰富多彩。

结尾

如果你忘了设置overflow:scroll和高度height或top和bottom,你可能会一直在这个地方绕弯路,所以为了避免出现滚动绑定事件,我们需要设置overflow和位移量。

论overflow滚动的重要性的更多相关文章

  1. 处理ios的overflow滚动bug

    先说说这个bug的场景 .container{ height:100vh; overflow-y:scroll; } 没毛病,总有这种类似的情况,需要在容器内滚动,但是!这种容器内的滚动在ios上面处 ...

  2. 放弃antd table,基于React手写一个虚拟滚动的表格

    缘起 标题有点夸张,并不是完全放弃antd-table,毕竟在react的生态圈里,对国人来说,比较好用的PC端组件库,也就antd了.即便经历了2018年圣诞彩蛋事件,antd的使用者也不仅不减,反 ...

  3. IOS中弹出键盘后出现fixed失效现象的解决方案

    概述 这个问题常出现在移动web开发中聊天或者留言页面的绝对定位输入框上,页面超过屏幕大小时候输入框focus状态下(键盘弹出)绝对定位的元素失效,导致页面滚动时候把定位元素一并带走,体验十分不好,在 ...

  4. 【转载】C# 中的委托和事件(详解)

    <div class="postbody"> <div id="cnblogs_post_body" class="blogpost ...

  5. 解决IE6,IE7下子元素使用position:relative、父元素使用overflow:auto后,子元素不随着滚动条滚动的问题

    解决IE6,IE7下子元素使用position:relative.父元素使用overflow:auto后,子元素不随着滚动条滚动的问题   在IE6,IE7下,子元素使用position:relati ...

  6. css pre如果同时运用了css的border-radius、 overflow两个属性且标签中内容太多时,外部div滚动条在firefox下滚动时很卡

    pre如果同时运用了css的border-radius. overflow两个属性且标签中内容太多时,外部div滚动条在firefox下滚动时很卡. 解决方法:去掉css中border-radius. ...

  7. CSS中overflow:scroll怎么设置只上下滚动而不左右滚动

    CSS中"overflow:scroll"默认是左右,上下都滚动.怎么设置只上下滚动而不左右滚动,下面有个不错的解决方法 CSS中"overflow:scroll&quo ...

  8. ipad safari 滚动(overflow)解决方案

    项目需要放到ipad应用了,发现有一个奇怪的问题,就是我div是设置滚动属性的,在pc上面的各个浏览器页面变小时,会出现滚动条,可是是ipad的safari,则不会滚动,开始以为是div的问题 但发现 ...

  9. 通过overflow: scroll;来实现部分区域的滚动

    在移动端中,我们希望元素的滚动,可以通过一些插件的使用来实现滚动,当然也可以自己来实现. 比如:对于某一个区域,我们可以限制好高度之后,设定:overflow-y: scroll; 这样,就可以实现滚 ...

随机推荐

  1. 项目接入apm后错误报警总结

    此文已由作者张磊授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前言: 后端服务一般都有监控措施,一般可以及时发现线上错误,但是很多项目的前端却没有线上报警服务,即使有错误, ...

  2. opesntack基础知识-软件包历史脉络

    软件包管理 软件包管理是每个OpenStack项目的基础,其目的是用来将项目代码打包成源码包或者二进制包进行分发.一个项目的代码可能会被打包放到PyPI上,这样你可以通过pip命令安装这个包:也可能会 ...

  3. Codeforces Round #527 (Div. 3)D2(栈,思维)

    #include<bits/stdc++.h>using namespace std;int a[200007];stack<int>s;int main(){    int ...

  4. maven jetty 插件 允许修改 js

    <!--允许修改js,css--> <servlet> <servlet-name>default</servlet-name> <init-pa ...

  5. Linux--7

    一.Nginx.conf主配置文件 Nginx主配置文件conf/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的.一般,每个区块以一对大括号{}来表示开始与结束. 核心模 ...

  6. Jenkins之自动触发部署之插件Generic Webhook Trigger Plugin

    一.安装好插件 二.构建触发器会出现设置trigger的入口 三.设置的两个部分 第一: Jenkins的这个触发器,这里主要是接受post数据.其中Post content parameters是用 ...

  7. CodeForces - 589A

    题目链接:http://codeforces.com/problemset/problem/589/A Polycarp has quite recently learned about email ...

  8. SGU - 409

    题目链接:https://vjudge.net/contest/239445#problem/H 题目大意:输入n,k,有n*n* n*n的网格,要求每行每列刚好有k个*,每n*n的小方格内也刚好有k ...

  9. ubuntu网络已禁用解决办法

    1.首先停掉network-manager这个服务 sudo service network-manager stop 2.删除掉NetworkManager.state这个文件 sudo rm /v ...

  10. Spring+Junit+Mock测试web项目,即Controller

    准备:Maven依赖 <!-- Spring和MVC的包这里不列出来了,webmvc,aspects,orm,其他maven会自动导 --> <dependency> < ...