利用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 相关文章推荐
jQuery学习总结之元素的相对定位和选择器(持续更新)
Apr 26 Javascript
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 Javascript
jquery选择器、属性设置用法经验总结
Sep 08 Javascript
js与运算符和或运算符的妙用
Feb 14 Javascript
JavaScript判断文件上传类型的方法
Sep 02 Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
vue使用xe-utils函数库的具体方法
Mar 06 Javascript
webpack打包js的方法
Mar 12 Javascript
express如何解决ajax跨域访问session失效问题详解
Jun 20 Javascript
bootstrap table实现iview固定列的效果实例代码详解
Sep 30 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 各种应用乱码问题的解决方法
2010/05/09 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
js定时器实例分享
2016/12/20 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
Python 字典dict使用介绍
2014/11/30 Python
简单解决Python文件中文编码问题
2015/11/22 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
python字符串格式化方式解析
2019/10/19 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
上班上网检讨书
2014/01/29 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2014年销售部工作总结
2014/12/01 职场文书
爱的教育观后感
2015/06/17 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
MySQL中order by的执行过程
2022/06/05 MySQL