scroll事件详解
以前眼高手低,不够扎实,面试的时候总是处理过,却想不出来细节,这次开始慢慢整理,蜗牛继续爬坡
CSS
一般情况下,如果出现内容大于浏览器的时候,需要添加样式 overflow:scroll
关于scroll的样式有以下可以根据需求调整:
滚动条的设置
1. ::-webkit-scrollbar 滚动条整体部分,可以设置宽度等
2. ::-webkit-scrollbar-button 滚动条两端的按钮
3. ::-webkit-scrollbar-track 外层轨道
4. ::-webkit-scrollbar-track-piece 内层滚动槽
5. ::-webkit-scrollbar-thumb 滚动的滑块
6. ::-webkit-scrollbar-corner 边角
7. ::-webkit-resizer 定义右下角拖动块的样式
根据需要添加scroll的容器,假设name为scrollPart ,则使用以上就可以修改样式,案例为以下:
.scrollPart::-webkit-scrollbar {width: 15px;height: 100%;
}
........
添加scroll事件
componentDidMount() {window.addEventListener('scroll', this.handleScroll, true);
}
componentWillUnmount() {window.removeEventListener('scroll', this.handleScroll, true);
}
handleScroll = e => {if (e.srcElement.getAttribute('class') === 'ant-table-body') return;const { scrollTop, clientHeight, scrollHeight } = e.srcElement;if (clientHeight < scrollHeight - scrollTop) {this.footer.style.position = 'fixed';this.footer.style.width = '79%';this.footer.style.paddingRight = '16px';this.footer.style.marginRight = '16px';} else {this.footer.style.position = 'absolute';this.footer.style.width = '100%';this.footer.style.marginRight = 0;}
};
在react中无法添加在具体的元素上的,在didmount和unmount生命钩子中无法获取到元素,无法实现监听
滚动穿透
当前页面有带滚动的弹窗,往往会因为window监听当弹窗滚动的时候触发遮罩层所覆盖页面的监听效果。这时候,就需要处理滚动穿透问题。
当modal内部的添加overflow:scroll 会被遮罩层所继承,继承后出现,两个滚动条:modal滚动条以及遮罩层滚动条,两种方法,一种是根据页面高度调整弹窗的高度,当弹窗的高度不会大于当前页面高度时,不会影响到外围的滚动条。另外一种就是网上所说的找到遮罩层对应的滚动条设置overflow:hidden,设置底部需不滑动页面为fixed
scroll事件详解相关推荐
- JavaScript事件详解-jQuery的事件实现(三)
正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...
- php jquery点击事件,jQuery操作html元素点击事件详解
这次给大家带来jQuery操作html元素点击事件详解,jQuery操作html元素点击事件的注意事项有哪些,下面就是实战案例,一起来看一下. 移除或禁用html元素的点击事件可以通过css实现也可以 ...
- ASP.NET页面事件详解
ASP.NET页面事件详解 ASP.NET页面事件详解 1.Page_Init()事件 当页面初始化时发生此事件.可以利用Page_Init()将该事件与要在.NET页面上显示控件之前的运行的代码建立 ...
- WPF中的鼠标事件详解
WPF中的鼠标事件详解 Uielement和ContentElement都定义了十个以Mouse开头的事件,8个以PreviewMouse开头的事件,MouseMove,PreviewMouseMov ...
- Spring Data JPA 从入门到精通~Auditing及其事件详解
Auditing 及其事件详解 Auditing 翻译过来是审计和审核,Spring 的优秀之处在于帮我们想到了很多繁琐事情的解决方案,我们在实际的业务系统中,针对一张表的操作大部分是需要记录谁什么时 ...
- 移动端开发touchstart,touchmove,touchend事件详解和项目
移动端开发touchstart,touchmove,touchend事件详解和项目 最近在做移动端的开发,在一个"服务商管理"页面使用到了触摸事件"touchstart& ...
- SQL Server 默认跟踪 -- 捕获事件详解
SQL Server 默认跟踪 -- 捕获事件详解 哪些具体事件默认跟踪文件能够捕获到? --returns full list of events SELECT * FROM sys.trace_e ...
- android 拖动 点击事件,Android事件详解——拖放事件DragEvent
1.Android拖放框架的作用? 利用Android的拖放框架,可以让用户用拖放手势把一个View中的数据移到当前layout内的另一个View中去. 2.拖放框架的内容? 1)拖放事件类 2)拖放 ...
- element 问号_element ui 对话框el-dialog关闭事件详解
element ui 对话框el-dialog关闭事件详解 通常会有需求,在关闭弹框后需要清空填写的数据,这时候就需要关闭事件了 在标签中加入@close='closeDialog' mothods中 ...
最新文章
- qt调用c语言编写的dll文件,Qt之调用外部DLL - moki_oschina的个人空间 - OSCHINA - 中文开源技术交流社区...
- Bootstrap简介--目前最受欢迎的前端框架(一)
- spring aop与strut2的拦截器冲突
- RCP:给GEF编辑器添加网格和标尺。
- jquery 停止事件冒泡方法
- linux怎么给目录创建acl,LINUX-ACL文件访问控制列表
- new,malloc,GlobalAlloc详解
- chrome中文本框样式问题
- gulp教程之gulp-minify-css
- CImageList用法介绍 (zz)
- 【Python刷题篇】——Python入门 01 输入输出
- ISILON OneFS CLI界面网络配置
- 自然语言处理(七)——n元语法模型计算句子出现概率
- uniapp微信小程序登陆方法
- 操作Windows文件夹时,弹出文件夹正在使用,操作无法完成【解决】
- windows蓝牙编程——1 扫描周边蓝牙并获取蓝牙信息
- VMware View for iPad,上座率最高的iPad免费软件
- WordPress 如何判断访客浏览器显示不同内容
- web开发学习,HTML标签语义化
- 成都计算机专科学院分数线,成都计算机工业职业技术学校2019年招生录取分数...
热门文章
- c语言程序设计正方体,2015年第六届蓝桥杯C/C++程序设计本科B组决赛 完美正方形...
- php网站分工,如何网页设计分工
- 免费提供一个完整股票分析软件源码(包含开发文档)
- Nuxt.js 开发SSR(服务端渲染)Web应用
- 安装descriptastorus
- DMediaPlayer - 简单的VLC前端播放器
- 《恋爱的犀牛》情节和语录
- 【汇正财经】指数分化,科创50、创业板强势
- 技术分享 oracle中fm的作用
- 公告:csdn学院《小白快速入门系列》线上课程,全部一折,最高6元!