我的站点页面中有一个 div,它具有水平滚动,整个页面具有垂直滚动。当指针位于特定部分时,它会停止页面的垂直滚动并开始该部分的水平滚动。我为此使用了一个函数. 我如何设置该功能,以便当该部分的水平滚动到达其末端时,该部分滚动关闭并开始滚动网页。 我怎样才能做到这一点? 我使用了以下功能来水平滚动部分:-
(function() {
function scrollHorizontally(e) {
e = window.event || e;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
document.getElementById('myDIV').scrollLeft -= (delta*40); // Multiplied by 40
e.preventDefault();
}
if (document.getElementById('myDIV').addEventListener) {
// IE9, Chrome, Safari, Opera
document.getElementById('myDIV').addEventListener("mousewheel", scrollHorizontally, false);
// Firefox
document.getElementById('myDIV').addEventListener("DOMMouseScroll", scrollHorizontally, false);
} else {
// IE 6/7/8
document.getElementById('myDIV').attachEvent("onmousewheel", scrollHorizontally);
}
})();
最佳答案
使用水平滚动测量 div 的宽度,并使用 jQuery's .scrollLeft() 将其与水平滚动距离进行比较.请记住将 div 的宽度添加到滚动距离。当两者相等时,滚动到达了 div 的末端。那时设置一个标志,应该在您的滚动功能中不断检查 - 该标志可以确定 div 是否应该滚动或页面。
关于javascript - 停止部分的水平滚动并开始页面垂直滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40930402/