利用jquery禁止外层滚动条的滚动


Posted in Javascript onJanuary 05, 2017

前言

通常情况下,当内部滚动条滚动到两端时,再接着滚动时外层的滚动条就会跟着滚动;可是有时我们希望用户只能滚动当前区域,而不触发外层(window)的滚动条,离开当前区域后,才能滚动外层的滚动条。因为用户可能一不小心滚动的幅度过大了,导致当前区域离开可视区域。

在jquery中,滚动事件是scroll,而这个事件是不能阻止冒泡和阻止默认事件的。假如我们设定要禁止window的滚动条,我采取的策略是:当鼠标进入到当前区域后,则window的滚动条的高度始终是鼠标进入前的高度

如下的代码:

<style type="text/css">
 .main{
 overflow: auto;
 width: 400px;
 height: 400px;
 border: 1px solid #aaa;
 }
 .main p{
 height: 800px;
 }
</style>

<body>
 <div id="main" class="main">
 <p></p>
 </div>
 <p style="height:1000px;"></p>
</body>

$(function () {
 var scrollTop = -1; // 鼠标进入到区域后,则存储当前window滚动条的高度
 $('#main').hover(function(){
 scrollTop = $(window).scrollTop();
 }, function(){
 scrollTop = -1;
 });

 // 鼠标进入到区域后,则强制window滚动条的高度
 $(window).scroll(function(){
 scrollTop!==-1 && $(this).scrollTop(scrollTop);
 })
})

从上面的代码可以看到,我并没有阻止window滚动条的事件,而是用户每次滚动时,都会重新进行赋值。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,当然,或许还有更好的方法,欢迎大家提供,谢谢!

Javascript 相关文章推荐
document.compatMode介绍
May 21 Javascript
javascript实现的距离现在多长时间后的一个格式化的日期
Oct 29 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
通过jQuery源码学习javascript(一)
Dec 27 Javascript
jquery中获取元素里某一特定子元素的代码
Dec 02 Javascript
jQuery过滤选择器用法分析
Feb 10 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
详解angular路由高亮之RouterLinkActive
Apr 28 Javascript
Vue路由切换时的左滑和右滑效果示例
May 29 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
Sep 25 Javascript
一秒学会微信小程序制作table表格
Feb 14 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
Feb 22 Javascript
bootstrap table配置参数例子
Jan 05 #Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
Jan 05 #Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
Jan 05 #Javascript
jQuery展示表格点击变色、全选、删除
Jan 05 #Javascript
JSON字符串和JSON对象相互转化实例详解
Jan 05 #Javascript
JS实现随机颜色的3种方法与颜色格式的转化
Jan 05 #Javascript
jQuery选择器实例应用
Jan 05 #Javascript
You might like
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
Node.js中的child_process模块详解
2018/06/08 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
vue按需加载实例详解
2019/09/06 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python中join和split用法实例
2015/04/14 Python
python抓取最新博客内容并生成Rss
2015/05/17 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
python+opencv实现动态物体追踪
2018/01/09 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
python 装饰器的使用示例
2020/10/10 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
甲方资料员岗位职责
2013/12/13 职场文书
网络教育自我鉴定
2014/02/04 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
企业年会祝酒词
2015/08/11 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
python基础之错误和异常处理
2021/10/24 Python
Springboot中如何自动转JSON输出
2022/06/16 Java/Android
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技