利用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 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
Apr 27 Javascript
Javascript 绘制 sin 曲线过程附图
Aug 21 Javascript
JsRender实用入门教程
Oct 31 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
Oct 04 Javascript
基于jquery二维码生成插件qrcode
Jan 07 Javascript
用jQuery实现优酷首页轮播图
Jan 09 Javascript
Jquery树插件zTree实现菜单树
Jan 24 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
Node.js中的不安全跳转如何防御详解
Oct 21 Javascript
微信小程序实现留言板
Oct 31 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
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
php根据年月获取季度的方法
2014/03/31 PHP
jQuery 前的按键判断代码
2010/03/19 Javascript
jquery中对表单的基本操作代码
2010/07/29 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
Python第三方库的安装方法总结
2016/06/06 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
python实现猜数字小游戏
2020/03/24 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
餐厅销售主管职责范本
2014/02/19 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
Python实现老照片修复之上色小技巧
2021/10/16 Python
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle