javascript - 停止部分的水平滚动并开始页面垂直滚动

标签 javascript jquery html css

我的站点页面中有一个 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/

相关文章:

javascript - 如何将 json 字符串转换为特定格式?

javascript - 具有两个输入的表单未提交?

javascript - jquery增加/减少滚动图像对比度

css - 对齐半圆形 div 内的文本

javascript - 使用宽度和高度将表格对齐到中心

php - jQuery 或 PHP 代码告诉访问者 Javascript 是否被禁用

jquery - 尝试使用 jQuery 隐藏 html 表的列

javascript - jQuery 工具提示脚本

html - HTML 文件中的相对路径

jquery - 从父 div 中删除克隆按钮并更新代码