【问题标题】:Unable to scroll on website无法在网站上滚动
【发布时间】:2018-10-10 17:06:22
【问题描述】:

在这个网站上我无法滚动。

www.Batan.io

当我第一次加载网站时,触控板 (mac) 工作正常,但滚动功能停止工作。侧边栏有效,我已更改 CSS 位置但无济于事。

请有人告诉我为什么滚动在这个网站上不起作用?

非常感谢,

托马斯

 $(function () {
        $('body').bind('mousewheel', function (event) {
            event.preventDefault();
            var scrollTop = this.scrollTop;
            this.scrollTop = (scrollTop + ((event.deltaY * event.deltaFactor) * -1));
            //console.log(event.deltaY, event.deltaFactor, event.originalEvent.deltaMode, event.originalEvent.wheelDelta);
        });
    });

【问题讨论】:

  • 欢迎来到 Stack Overflow!寻求代码帮助的问题必须包含在问题本身最好是在堆栈片段中重现它所需的最短代码。尽管您提供了一个链接,但如果它变得无效,那么您的问题对于未来遇到同样问题的其他 SO 用户将毫无价值。见Something in my website doesn't work can I just paste a link
  • 是你的网站吗? main.js $('body').bind('mousewheel', function (event) {event.preventDefault();}的第 111 行已禁用滚动
  • 它可以在我的机器上运行(windows 10 Google Chrome)
  • @Paulie_D 在不知道代码的哪一部分有问题的情况下,很难遵守那些原本非常合理的要求。
  • 您提供了 minimal 代码来重现它....这就是我们的诊断。我们不需要整个代码库,只需要演示问题即可。您经常会发现制作最小的演示实际上可以帮助您找到问题。

标签: html css scroll


【解决方案1】:

此代码可能存在一些问题:

  1. 除非另有设置,否则HTML 元素将是可滚动元素
  2. 您正在尝试访问原生 javascriptthis 上的 jQuery 函数
  3. 您实际上并没有执行该函数来获取值
  4. 您没有调用函数来设置所需的值

    $(function() {
        // Change 'body' to 'html'
        $('html').bind('mousewheel', function(event) {
            event.preventDefault();
    
            var $window = $(this); // <--- Wrap the event target with a jQuery object
            var scrollTop = $window.scrollTop(); // <--- Call this function to return the result (use parens)
    
            /*
                Otherwise the reference on this line is to a function, not a value,
                and call the function (instead of setting a property)
            */
            $window.scrollTop(scrollTop + ((event.deltaY * event.deltaFactor) * -1));
        });
    });
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 2023-03-23
    • 2013-04-10
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    相关资源
    最近更新 更多