利用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中prevAll()方法用法实例
Jan 08 Javascript
详解AngularJS中的filter过滤器用法
Jan 04 Javascript
JS产生随机数的几个用法详解
Jun 22 Javascript
JS触发服务器控件的单击事件(详解)
Aug 06 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
Javascript动画效果(3)
Oct 11 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
Dec 14 Javascript
canvas实现十二星座星空图
Feb 14 Javascript
EsLint入门学习教程
Feb 17 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
Feb 06 Javascript
js正则相关知识点专题
May 10 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 10 jQuery
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
咖啡的种类和口感
2021/03/03 新手入门
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
express.js中间件说明详解
2019/03/19 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
python 类详解及简单实例
2017/03/24 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
python 字符串追加实例
2019/07/20 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python虚拟环境完美部署教程
2019/08/06 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
python selenium操作cookie的实现
2020/03/18 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
互联网创业计划书的书写步骤
2014/01/28 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
合作协议书格式
2014/08/19 职场文书
作风建设剖析材料
2014/10/06 职场文书
营销计划书范文
2015/01/17 职场文书
质量整改通知单
2015/04/21 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书