I have a repo up and running if you’re interested in contributing to solutions.

我在构建移动网站时遇到了一个有趣的问题.

我设置’溢出:隐藏;’切换抽屉时的html / body.这样就不能滚动窗口了,抽屉 – 可滚动 – 达到它的限制时不会滚动页面(e.preventDefault();& e.stopPropagation();根本不做特技).

一切都很好.很棒,如果这是一个Phonegap应用程序.但是 – 由于这是一个网站,不一致的溢出设置会在浏览器的“全屏模式”下产生可用性问题. “全屏模式”是指在向下滚动页面时隐藏地址栏.向上滚动时,栏会重新出现.切换抽屉时,浏览器基本上处于“非全屏模式”或“全屏模式”.后者是真正的问题 – 因为用户根本无法访问地址栏 – 并且给人留下浏览器锁定或者奇怪的印象.

关于如何(可能使用Javascript)滚动/ touchmove的任何明智想法仍然可以提供进入/退出’全屏模式’的效果?我玩过全屏API,但这是正确的全屏,而不仅仅是地址栏.

这里有一些截图:

>网站加载,我们可以看到地址栏
>网站可按预期滚动,浏览器进入“全屏模式”
>我们切换抽屉打开 – 网站现在没有响应(除抽屉滚动和任何手势[通过AngularJS指令]我必须隐藏抽屉)
>当地址栏可见时,抽屉切换.对于可用性有好处,但是在使用站点时预期的“全屏模式”不会发生(拥有房地产会很好).

EDIT2:https://medium.com似乎实现了我所追求的目标.

EDIT3:一个看不见的绝对定位div在一切之上取得了一些成功 – 但这有它自己的问题.

解决方法

而不是设置溢出:隐藏;抽屉外出时,如何制作抽屉位置:固定; overflow-y:auto;,这样用户可以选择滚动正文以到达地址栏或抽屉.

出于兴趣,Firefox for Android在这种情况下做了什么?如果Firefox没有显示类似的可用性问题,可能值得向Chromium团队提交错误.

编辑:我通过他们各自支持ADB的远程调试器(非常好的工具!)在Android Chrome和Android Firefox中运行时查看了https://github.com/patrickmarabeas/marabeas.io的代码.

我得出的结论是,当身体溢出时隐藏在地址栏上,一旦它隐藏起来,就没有很好的方法可以显示地址栏.
然而,经过一个黑客的方式!

将主要可滚动区域从body移动到div,在本例中为#content.然后,位置:绝对;在移动设备上,让它填充视口加上一些额外的高度.下面给出了在移动浏览器上应用的相关CSS:

body {
    position: absolute;
    top: 0;
    bottom: -100px;
    left: 0;
    right: 0;
}

#content {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow-y: auto;
}

然后,当浏览器正在寻找正在滚动的主体是否显示地址栏时,请将#content滚动链接到主体滚动,尽管这可能没有效果!:

var lastScrollTop = 0;
document.getElementById('content').addEventListener('scroll',function(e) {
    var currentScrollTop = document.getElementById('content').scrollTop;
    if(currentScrollTop < lastScrollTop) {
        // Upwards scroll!
        document.body.scrollTop -= 10;
    } else {
        // Downwards scroll!
        document.body.scrollTop += 10;
    }
    lastScrollTop = currentScrollTop;
 });

我现在正在向您发送拉取请求:https://github.com/patrickmarabeas/marabeas.io/pull/5

javascript – 如何限制移动网站的滚动,但允许访问可能缩进的地址栏的更多相关文章

  1. Html5 滚动穿透的方法

    这篇文章主要介绍了Html5 滚动穿透的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. 详解三种方式实现平滑滚动页面到顶部的功能

    这篇文章主要介绍了详解三种方式实现平滑滚动页面到顶部的功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  3. 移动端html5判断是否滚动到底部并且下拉加载

    这篇文章主要介绍了移动端html5判断是否滚动到底部并且下拉加载,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  4. iOS7 Safari中的全屏模式

    我正在使用SenchaTouch开发移动网站.在iOS7Safari中,我无法创建顶级地址栏和下面的工具栏消失了.Sencha过去常常处理iOS6,但iOS7最近的一些变化导致了这个问题.http://java.dzone.com/articles/safari-ios-7-and-html5我阅读了上面的链接&对于HTML5游戏而言,这似乎也是一个问题.一些其他应用程序.适用于iOS6的旧win

  5. Android:带有进度条的EditText?

    我正在构建一个浏览器,我在WebView上有一个地址栏.我想要做的是在EditText的背景中以图形方式显示页面的加载,就像在iPhone的浏览器中一样.这可能吗?解决方法看一下thislink,它讨论了重写ProgressBar的onDraw()方法并在其上绘制文本.这应该至少让你开始.

  6. vue-router如何实时动态替换路由参数(地址栏参数)

    这篇文章主要介绍了vue-router如何实时动态替换路由参数(地址栏参数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. js scrollTop如何到达指定位置

    很早之前就想分享这篇心得,幸之今天能在这里完成,好了,话不多说,进入正题。如有错误或未考虑完全的地方,望不吝赐教

  8. scrollTop 用法说明

    scrollTop属性是什么?有些情况下,“元素中内容”的高度会超过“元素本身”的高度,

  9. vue如何实现动态改变地址栏的参数值

    这篇文章主要介绍了vue如何实现动态改变地址栏的参数值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  10. 解析浏览器的一些“滚动”行为鉴赏

    这篇文章主要介绍了解析浏览器的一些“滚动”行为鉴赏 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部