html - 防止背景图像在滚动时调整大小

标签 html css twitter-bootstrap

当我在移动设备上从顶部滚动时,我的背景图片会稍微调整大小。当我再次滚动到顶部时,它会恢复到原来的大小。 可以看看here

我试过用

background-attachment: fixed;

除了您可以在下面看到的所有其他 css 代码之外,但它不起作用。

CSS

.bg-1, .bg-2, .bg-3,
.bg-1:after, .bg-2:after, .bg-3:after { 
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  z-index: 0; 
}

.bg-1 li span, .bg-2 li span, .bg-3 li span { 
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0px;
  left: 0px;
  color: transparent;
  background-size: cover;
  background-position: 50% 50%;
  background-repeat: none;
  opacity: 1;
  z-index: 0;
}

.bg-1 li span { background-image: url(../images/slide-1.jpg); }
.bg-2 li span { background-image: url(../images/slide-3.jpg); }
.bg-3 li span { background-image: url(../images/slide-2.jpg); }

ol,ul {
  list-style:none;
}

html

 <body>

  <ul class="bg-2">
    <li><span></span></li>
  </ul>

  <nav class="navbar">
    <div class="container-fluid social-nav">

  ...

只是为了解释一下,这是一个列表,因为如果我想制作一个幻灯片库,它可以添加更多

<li><span></span></li>

但我只在主页使用幻灯片。

如何防止调整大小?

最佳答案

如果背景图像在初始滚动时调整大小,我假设具有该背景的元素必须具有动态高度,使用 CSS 或 JS/jQ 脚本中的 vw/vh 生成。我遇到了同样的问题,我发现我认为是解决这个问题的正确方法(至少在移动浏览器提供自己的解决方法之前)。

使用一个简单的 jQuery 函数,您可以在页面加载时存储窗口的宽度,并使用它来限制容器的调整大小功能,以将视口(viewport)尺寸限制为比桌面断点 (992px+) 宽的视口(viewport)尺寸和较窄的视口(viewport)尺寸,只要视口(viewport)宽度发生变化,不只是高度。这样,在移动设备和平板设备上,当您滚动时,只有垂直视口(viewport)调整大小,因此不会触发调整大小功能。

var breakpoint = 991;
var bgHeight = function() {
    $('#bg').css('height', $(window).height() + 'px');
}; bgHeight();
var windowWidth = $(window).height();
$(window).on('resize', function() {
    if ((($(this).width() <= breakpoint) && ($(this).width() != windowWidth))
        || ($(this).width() > breakpoint)) {
        bgHeight();
    }
    windowWidth = $(window).width();
});

代码笔: https://codepen.io/brandonmcconnell/pen/jayYbB

关于html - 防止背景图像在滚动时调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41525157/

相关文章:

html - iOS like toggle button using checkbox 对于不同的浏览器看起来不同

css - 如何使用纯 css 和 IE 7 支持获得替代颜色 div?

html - 模态框打不开

html - 改变棘轮模态尺寸和滑动位置

javascript - 提交后文本框为空

html - 如果我使用填充,如何将文本框置于带有 HTML/CSS 的表单中?

html - iOS11 + Webview - 滚动div中的图像消失,不要回来

twitter-bootstrap - 推特 Bootstrap 2 : How to get responsive design to place sidebar on the bottom instead of top?

HTML 元素 - 不同类型,但共享相同的类名 - 行为异常

html - 将 HTML 作为组织模式标记粘贴到组织模式中?