子元素scroll父元素容器不跟随滚动JS实现
仅供参考:
- function parentNotRoll($id){
- var flg;//标记滚动方向,true-向下,false-向上
- var $test = document.getElementById($id);
- var eventType = 'mousewheel';
- // 火狐是DOMMouseScroll事件
- if (document.mozHidden !== undefined) {
- eventType = 'DOMMouseScroll';
- }
- myAddEvent($test,eventType,getData);
- function getData(event){
- var e = event || window.event;
- var scrollHeight = $test.scrollHeight,//元素的全部高度,包括滚动条高度
- height = $test.clientHeight,//元素设置的高度
- maxHeight = scrollHeight - height,//滚动条可以滚动最大高度
- scrollTop = $test.scrollTop;//滚动条的高度
- var delta = e.wheelDelta?e.wheelDelta:e.detail;
- if(delta < - || delta ==){
- flg = true;
- }else
- if(delta > || delta == -){
- flg = false;
- }
- //判断当滚动向下,并且滚动到边界,就阻止浏览器默认行为,否则就取消阻止默认行为
- if(flg && scrollTop >= maxHeight || !flg && scrollTop <= ){
- stopDefault();
- }
- }
- //兼容绑定事件方法
- function myAddEvent(ele,sEvent,getData){
- if(ele.addEventListener && !ele.attachEvent){//非IE
- ele.addEventListener(sEvent,getData);
- }else{//IE
- if(document.attachEvent && !document.addEventListener){ //IE8以
- ele.attachEvent('on'+sEvent,getData);
- }else{ //IE8以上
- ele.addEventListener(sEvent,getData);
- }
- }
- }
- //阻止默认浏览器动作
- function stopDefault(){
- var e = arguments.callee.caller.arguments[] || window.event;
- if (e.preventDefault){//非IE
- e.preventDefault();
- //IE中阻止函数器默认动作的方式
- } else{//IE
- e.returnValue = false;
- }
- return false;
- }
- }
调用 parentNotRoll();函数,传入你需要实现滚动的元素ID或类即可实现
- parentNotRoll('test');
子元素scroll父元素容器不跟随滚动JS实现的更多相关文章
- 一个 VUE 组件:实现子元素 scroll 父元素容器不跟随滚动(兼容PC、移动端)
介绍 我们经常遇到一种情况.当滑动滚动条区域时,子元素滚动条到底部或顶部时就会触发父级滚动条,父级滚动条同理会继续向上触发,直至body容器.这是浏览器默认的滚动行为. 但是很多情况,我们想要子元素滚 ...
- jQuery学习笔记---兄弟元素、子元素和父元素的获取
我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行 ...
- jQuery中兄弟元素、子元素和父元素的获取
我们这里主要总结jQuery中对某元素的兄弟元素.子元素和父元素的获取,原声的Javascript代码对这些元素的获取比较麻烦一些,而jQuery正好对这些方法进行封装,让我们更加方便的对这些元素进行 ...
- WPF XMAL获取元素的父元素,子元素
/// 获得指定元素的父元素 /// </summary> /// <typeparam name="T">指定页面元素</typeparam> ...
- css使子元素在父元素居中的各种方法
html结构: <div class="parent"> <div class="child"></div> </di ...
- margin (子元素远离父元素边框)
如果父盒子没有设置border框着,那么他的子元素无法利用margin-top 来远离父元素的上边框 如果使用了margin-top会使子元素和父元素一起往下移 (子想离,父不设置border边框 则 ...
- ie10中元素超出父元素的宽度时不能自动隐藏
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期2014-02-21) 今天遇到一个问题,ie10中元素超出父元素的宽度时不能自动隐藏,而其余浏览器却正常显示. 解决方法是,手动给其设 ...
- 让子元素在父元素中水平居中align-items
做案例中,我们会发现让子元素在父元素中垂直居中,要设置margin和padding等,各种设置才能垂直居中 现在可以使用CSS3中的align-items实现 align-items 定义子元素在父元 ...
- justify-content 定义子元素在父元素水平位置排列的顺序
justify-content 定义子元素在父元素水平位置排列的顺序,需要和display:flex使用才会生效. 有五个属性: 1.flex-start(默认值) 左对齐 2.flex-end 右 ...
随机推荐
- 前端css规范
文章整理了Web前端开发中的各种CSS规范,包括文件规范.注释规范.命名规范.书写规范.测试规范等. 一.文件规范 1.文件均归档至约定的目录中(具体要求以豆瓣的CSS规范为例进行讲解): 所有的CS ...
- 浏览器通过http协议通过nginx访问ftp服务器上的文件
1.修改nginx配置文件 2.修改nginx默认目录为ftp默认目录 3.修改成自定义路径后,并修改此目录第一行,修改为root或是nginx用户 4.重新加载 cd /usr/local/ngin ...
- streamsets rest api 转换 graphql
原理很简单,就是使用swagger api 生成schema 然后代理请求处理api 调用 参考项目 https://github.com/rongfengliang/streamsets-graph ...
- 针对 FastAdmin 2018-01-19 号的升级 SQL (废)
FastAdmin 在 2018-01-19 升级增加了以下功能. 新增前台会员模块和API会员模块 新增后台会员管理.会员规则和会员分组管理 新增短信发送的行为事件 新增前台Token.短信.日志模 ...
- JavaScript中类似PHP的uniqid()方法
JavaScript中类似PHP的uniqid()方法: function generateUIDNotMoreThan1million() { return ("0000" + ...
- jmeter测试TCP服务器/模拟发送TCP请求
jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1. ...
- sqlvarchar后自动填充空格解决办法(SET ANSI_PADDING)
SET ANSI_PADDING http://www.yesky.com/imagesnew/software/tsql/ts_set-set_2uw7.htm http://www.makaido ...
- 论战大数据----胖子哥的PK之旅(一)
胖子哥(1106110976) 9:35:36 http://www.cnblogs.com/hadoopdev/p/3531963.htmlnosqlt数据库-肖(380594863) 9:38:0 ...
- bzoj1876 SuperGCD
Description Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约 数)!因此他经常和别人比赛计算GCD.有一天Sheng bill很嚣张地找到了你,并要 ...
- ASP.NET Web Pages:发布网站
ylbtech-.Net-ASP.NET Web Pages:发布网站 1.返回顶部 1. ASP.NET Web Pages - 发布网站 学习如何在不使用 WebMatrix 的情况下发布 Web ...