利用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 相关文章推荐
javascript 图片裁剪技巧解读
Nov 15 Javascript
JavaScript中的eval()函数使用介绍
Dec 31 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
Feb 27 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
Aug 26 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
Nov 27 Javascript
VueJs路由跳转——vue-router的使用详解
Jan 10 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
Jan 13 Javascript
详解在Vue中通过自定义指令获取dom元素
Mar 04 Javascript
微信小程序 开发之全局配置
May 05 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
Apr 05 Javascript
vue配置font-awesome5的方法步骤
Jan 27 Javascript
vue+Element-ui前端实现分页效果
Nov 15 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
PHP中的CMS的涵义
2007/03/11 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php中__toString()方法用法示例
2016/12/07 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
javascript实现数独解法
2015/03/14 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
Python中最大递归深度值的探讨
2019/03/05 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
使用python绘制二维图形示例
2019/11/22 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
通俗讲解python 装饰器
2020/09/07 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
一些Unix笔试题和面试题
2013/01/22 面试题
《三峡》教学反思
2014/03/01 职场文书
企业公益活动策划方案
2014/08/24 职场文书
授权委托书协议书
2014/10/16 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers