美文网首页
控制页面滚动

控制页面滚动

作者: 般犀 | 来源:发表于2020-04-02 15:23 被阅读0次

    查阅页面滚动相关资料时,看到大神的文章说:在移动端的窗体滚动元素是document.body,在PC端是document.documentElement,说是这么说,实测在iphone ios13上,使用document.body.scrollTop并无法让页面滚动,反而document.documentElement.scrollTop可以。

    而为了统一控制窗体滚动的元素,又创造出了一个属性:document.scrollingElement。意思就是不管你是PC还是移动,安卓还是ios,只要用了这个属性,就可以控制页面的窗体滚动。

    但是一个新推出的方案,往往只能拯救新的系统,看下这个属性的兼容性:


    安卓4.4及以下无法支持,为了使安卓4.4的手机可以滚动,就只能使用document.body.scrollTop让页面滚动。

    最后给出处理方案:

    // 优先使用 scrollingElement
    const scrollElement = document.scrollingElement || document.documentElement;
    scrollElement.scrollTop = 100;
    
    // 安卓4.4只能利用 body 的滚动,getAndroidVersion获取安卓主版本号
    const androidVersion = getAndroidVersion();
    if (androidVersion === 4) {
        document.body.scrollTop = 100;
    }
    

    这里不能使用document.scrollingElement || document.documentElement || document.body获取控制窗体元素,因为document.documentElement 在安卓4下也可以获取到,但是无法控制页面滚动,所以只能对安卓4单独判断。

    相关文章

      网友评论

          本文标题:控制页面滚动

          本文链接:https://www.haomeiwen.com/subject/uwdxphtx.html