利用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 相关文章推荐
input 高级限制级用法
Mar 26 Javascript
JavaScript随机排序(随即出牌)
Sep 17 Javascript
JavaScript中的函数模式详解
Feb 11 Javascript
字符串反转_JavaScript
Apr 28 Javascript
JavaScript正则表达式实例详解
Oct 16 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
Jan 22 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
Jan 25 Javascript
angular之ng-template模板加载
Nov 09 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
Jan 10 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
vue excel上传预览和table内容下载到excel文件中
Dec 10 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 中的一些经验积累
2006/10/09 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
Javascript----文件操作
2007/01/18 Javascript
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
Python科学画图代码分享
2017/11/29 Python
对Python 数组的切片操作详解
2018/07/02 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
专业毕业生个性的自我评价
2013/10/03 职场文书
研究生自荐信
2013/10/09 职场文书
业务部主管岗位职责
2014/01/29 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
《海上日出》教学反思
2016/02/23 职场文书