如何限制滚动到鼠标当前悬停的div?
How to restrict scrolling to the div that mouse is currently hovering?
我有一个可滚动的 div 名称,每当我将鼠标悬停在它上面时,我希望滚动仅限于此 div,以便在到达 div 的 top/bottom 之后,滚动将停留在 div。我使用了以下代码:
<div class="scrollable" style="overflow-y: scroll; height: 2px;"
onmouseover="document.body.style.overflow='hidden'"
onmouseout="document.body.style.overflow='auto'" >
Some text<br>sometext<br>sometext
</div>
这样做就可以完成工作,但唯一的问题是主滚动条被隐藏了,每次我将鼠标悬停在“.scrollable”上时,网页看起来都很奇怪
使用 window.onwheel=function(){return false;}
也无济于事,因为它会阻止滚动任何元素。
有没有办法只在悬停 div 上启用滚动,而不在其他悬停上启用滚动,同时保持主页滚动条可见?
谢谢
您可以在不隐藏滚动条的情况下禁用滚动,勾选this post。
使用jQuery,这将导致:
$(".scroll").hover(function() {
var oldScrollPos = $(window).scrollTop();
$(window).on('scroll.scrolldisabler', function(event) {
$(window).scrollTop(oldScrollPos);
event.preventDefault();
});
}, function() {
$(window).off('scroll.scrolldisabler');
});
检查 it。
对我来说,希望可以工作
$('body').on('mousewheel', '.someDIVClass', (e: any) => {
if (e.originalEvent.wheelDelta / 120 > 0) {
// You can get scroll value here to do other things
}
else {
// You can get scroll value here to do other things
}
// This will prevent window to scroll
e.preventDefault();
e.stopPropagation();
});
我有一个可滚动的 div 名称,每当我将鼠标悬停在它上面时,我希望滚动仅限于此 div,以便在到达 div 的 top/bottom 之后,滚动将停留在 div。我使用了以下代码:
<div class="scrollable" style="overflow-y: scroll; height: 2px;"
onmouseover="document.body.style.overflow='hidden'"
onmouseout="document.body.style.overflow='auto'" >
Some text<br>sometext<br>sometext
</div>
这样做就可以完成工作,但唯一的问题是主滚动条被隐藏了,每次我将鼠标悬停在“.scrollable”上时,网页看起来都很奇怪
使用 window.onwheel=function(){return false;}
也无济于事,因为它会阻止滚动任何元素。
有没有办法只在悬停 div 上启用滚动,而不在其他悬停上启用滚动,同时保持主页滚动条可见?
谢谢
您可以在不隐藏滚动条的情况下禁用滚动,勾选this post。
使用jQuery,这将导致:
$(".scroll").hover(function() {
var oldScrollPos = $(window).scrollTop();
$(window).on('scroll.scrolldisabler', function(event) {
$(window).scrollTop(oldScrollPos);
event.preventDefault();
});
}, function() {
$(window).off('scroll.scrolldisabler');
});
检查 it。
对我来说,希望可以工作
$('body').on('mousewheel', '.someDIVClass', (e: any) => {
if (e.originalEvent.wheelDelta / 120 > 0) {
// You can get scroll value here to do other things
}
else {
// You can get scroll value here to do other things
}
// This will prevent window to scroll
e.preventDefault();
e.stopPropagation();
});