利用jquery禁止外层滚动条的滚动
前言
通常情况下,当内部滚动条滚动到两端时,再接着滚动时外层的滚动条就会跟着滚动;可是有时我们希望用户只能滚动当前区域,而不触发外层(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滚动条的事件,而是用户每次滚动时,都会重新进行赋值。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,当然,或许还有更好的方法,欢迎大家提供,谢谢!
- jquery滚动条插件slimScroll使用方法
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
- jQuery实现滚动条滚动到子元素位置(方便定位)
- jQuery实现立体式数字滚动条增加效果
- jQuery中Nicescroll滚动条插件的用法
- jQuery判断是否存在滚动条的简单方法
- jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
- jQuery实现将div中滚动条滚动到指定位置的方法
- vue中如何引入jQuery和Bootstrap
- bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
- Jquery与Bootstrap实现后台管理页面增删改查功能示例
- 利用jquery和BootStrap实现动态滚动条效果
相关文章
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
jQuery.uploadifive插件可以很好的解决上传限制图片或文件大小问题,具体实例代码大家参考下本文2017-05-05
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
本文将采用Jquery+Ajax+PHP+MySQL来实现一个客户分类列表的管理,如何利用Ajax和Json技术让用户操作起来觉得更轻松,感兴趣的小伙伴们可以参考一下2015-10-10
两种方法基于jQuery实现IE浏览器兼容placeholder效果
这篇文章主要介绍了两种方法基于jQuery实现IE浏览器兼容placeholder效果,需要的朋友可以参考下2014-10-10
详解jQuery中的getAll()和cleanData()
这篇文章主要介绍了jQuery之getAll()和cleanData()函数的实例代码解析,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧2019-04-04
jquery UI Datepicker时间控件的使用方法(加强版)
这篇文章继续介绍了jquery UI Datepicker时间控件的使用方法,主要关于Datepicker插件的介绍和使用,并分享了第一个日历插件的使用实例,需要的朋友可以参考下2015-11-11


最新评论