Jquery滚动功能在iphone设备上不起作用

Posted

技术标签:

【中文标题】Jquery滚动功能在iphone设备上不起作用【英文标题】:Jquery scroll function not working on iphone device 【发布时间】:2019-08-28 13:11:10 【问题描述】:

我有一个滚动功能,当用户滚动时会出现一个 div,而当他们向上滚动时它会消失。问题是当我在设备(iphone)上测试时,这仅适用于移动设备,当我一直滚动到顶部时,div 出现在顶部,在 chrome 模拟器上很好,但在 iphone chrome 和 iphone safari 上出现在顶部?有什么想法吗?

$('document').ready(function() 

    var lastScrollTop = 0;

    $(window).scroll(function(event) 
        var st = $(this).scrollTop();
        if (st > lastScrollTop) 
            $('.scroll-div').show();
         else if (st == lastScrollTop) 
            //do nothing 
            //In IE this is an important condition because there seems to be some instances where the last scrollTop is equal to the new one
         else 
            $(".scroll-div").hide();
        
        lastScrollTop = st;
    );
);

【问题讨论】:

检查您是否有overflow-x: hiddenoverflow-y: hidden,那么您将无法在$(this).scrollTop() 中获得价值 我在任何元素上都没有这个 它可能存在于body标签或最根html标签中 【参考方案1】:

您可以使用此代码获取滚动顶部值

scrollTop = Math.max(window.pageYOffset, document.documentElement.scrollTop, document.body.scrollTop)

JQuery 方法 $(this).scrollTop()ios 中可能返回零

【讨论】:

你是说,jquery方法不合适? 您可以识别溢出隐藏(如果存在),您可以将其删除,是的 jquery 可能会提供始终隐藏的滚动为零这是一种已知问题

以上是关于Jquery滚动功能在iphone设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 滚动按钮在某些浏览器和移动设备上不起作用

jquery click 在 ipad/iphone 上不起作用

jQuery 显示和隐藏在 iPad 或 iPhone 上不起作用

点击事件在 iPhone 4s 上不起作用

UIButtons 在某些设备上不起作用

使用 jQuery 的字体大小在 iPhone 上不起作用