当前位置: 首页 > 面试题库 >

地址栏隐藏iOS / Android / Chrome浏览器时背景图片会跳转

卢朝
2023-03-14
问题内容

我目前正在使用Twitter Bootstrap开发一个响应式网站。

该网站在移动设备/平板电脑/桌面上具有全屏背景图片。这些图像使用两个div旋转并逐渐淡入。

除了一个问题,它几乎是完美的。使用iOS
Safari,Android浏览器或Android上的Chrome,当用户向下滚动页面并导致地址栏隐藏时,背景会略微跳动。

在移动设备上访问它并向下滚动,您应该会看到图像调整大小/移动。

我用于后台DIV的代码如下:

#bg1 {
    background-color: #3d3d3f;
    background-repeat:no-repeat;
    background-attachment:fixed;
    background-position:center center;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover; position:fixed;
    width:100%;
    height:100%;
    left:0px;
    top:0px;
    z-index:-1;
    display:none;
}

欢迎所有建议-这已经让我有一段时间了!


问题答案:

此问题是由于URL栏缩小/滑出并更改#bg1和#bg2
div的大小而引起的,因为它们是100%高度且已“固定”。由于背景图像设置为“覆盖”,因此随着包含区域的增大,它将调整图像的大小/位置。

根据站点的响应性质,背景必须扩展。我接受两种可能的解决方案:

1)将#bg1,#bg2高度设置为100vh。从理论上讲,这是一个优雅的解决方案。但是,iOS有一个vh错误。我尝试使用最大高度来防止出现此问题,但问题仍然存在。

2)当视口大小由Javascript确定时,不受URL栏的影响。因此,可以使用Javascript根据视口大小在#bg1和#bg2上设置静态高度。这不是最佳解决方案,因为它不是纯CSS,并且页面加载时图像略有跳跃。但是,考虑到iOS的“
vh”错误(这在iOS 7中似乎未修复),这是我看到的唯一可行的解​​决方案。

var bg = $("#bg1, #bg2");

function resizeBackground() {
    bg.height($(window).height());
}

$(window).resize(resizeBackground);
resizeBackground();

附带说明一下,我在iOS和Android中看到了这些重新设置URL栏大小的问题。我知道目的,但他们确实需要考虑带给网站的奇怪功能和破坏。最新变化是,您不再可以使用滚动技巧在页面加载时“隐藏”
iOS或Chrome上的URL栏。

编辑:虽然上面的脚本可以完美地防止后台调整大小,但是当用户向下滚动时,会导致明显的间隙。这是因为它将背景大小保持为屏幕高度减去URL栏的100%。如瑞士人所建议,如果将高度增加60像素,此问题将消失。这确实意味着当出现URL栏时,我们看不到背景图像的底部60像素,但是它防止用户看到间隙。

function resizeBackground() {
    bg.height( $(window).height() + 60);
}


 类似资料:
  • 我目前正在开发一个响应网站使用Twitter引导。 该网站有一个全屏背景图像的移动/平板/台式机。这些图像通过使用两个div旋转和淡化通过每一个。 几乎完美无缺,除了一个问题。使用iOS Safari、Android浏览器或Android上的Chrome时,当用户向下滚动页面时,背景会略微跳转,导致地址栏隐藏。 网址在这里:http://lt2.daveClarke.me/ 在移动设备上访问它并向

  • 问题内容: 我必须隐藏浏览器的地址栏。我正在使用此代码: 在许多解决方案中,仅location=no属性可以隐藏地址栏(在IE和Chrome中)。但是,这对我不起作用(即使在IE和Chrome中也是如此)。 最后,我找到了一条MSDN文章,其中描述了如何location=no简单地隐藏后退/前进/停止导航按钮,并使地址栏为只读。 有什么解决方案可以通过忽略上面的MSDN文章来隐藏整个地址栏吗? 我

  • 问题内容: 我创建了一个小的搜索小部件,但是通过chrome浏览时,背景不会出现。我已经测试了IE,FF和safari,它们看起来都不错。 http://paradigmsearch.co.uk/widget/?id=1 我通常不愿意将布局问题放在SO上。但是,我已经讨论了一段时间。 在元素上: 我正在应用以下CSS定义 背景只是不可见。如果这确实是一个愚蠢的标记/ CSS监督,那么我深表歉意。

  • 问题内容: 如何隐藏iPhone上的地址栏? 到目前为止,我尝试了两种不同的方法: 在页面加载时使用JavaScript向下滚动一个像素的技巧 以及以下元标记: 还有这个: 我完全感到困惑。 PS:哦,我忘记了一件非常重要的事情:网页本身不会溢出浏览器窗口。这可能是1像素向下滚动技巧不起作用的原因。 我无法将其放大,因为设计的热门之处在于每个人都可以滚动,但是此页面可以折叠… :) 问题答案: 我

  • 我在隐藏状态栏时遇到了一些麻烦。 如果我使用此代码进入完全沉浸式模式(隐藏状态栏和导航),它确实会隐藏导航,但状态栏仍保持在那里: 我也尝试过使用清单: 两者都不管用。还尝试了不使用setSysteMivis()函数的清单方法(只是为了测试它是否可以工作——应该是这样的,因为我以前用过这个),但没有。 在Android 4.4.2(索尼z2平板电脑)和Android L-Dev预览版(第二版,Ne

  • 问题内容: 有谁知道我该如何从Android浏览器中删除地址栏,以更好地查看我的Web应用程序并使它看起来更像本机应用程序? 问题答案: 您可以使用下一个代码 希望对您有帮助!