BackStretch移动滚动上的空白底栏

时间:2014-07-18 03:49:47

标签: twitter-bootstrap mobile scroll background-image jquery-backstretch

所以我在我的网站上使用BackStretch jQuery插件,到目前为止它工作得很好。我看到的唯一问题是,在移动垂直屏幕上,当我开始向下滚动时,底部会出现一个空白的白条 - 在顶部网址和底部浏览器菜单缩小/消失之后。看起来body标签中的背景没有注册,当顶部和底部浏览器栏消失时,它需要调整大小。有关如何解决此问题的任何想法?我正在使用Boostrap 3.0并且在垂直滚动条上遇到了一些白色条的问题,但我能够通过overflow-x:hidden来修复它。任何想法将不胜感激。该网站位于http://ivynursery.jacobbuller.com - 您可以在关于http://ivynursery.jacobbuller.com/about.php和联系http://ivynursery.jacobbuller.com/contact.php页面上看到问题。

这是我对身体和容器div的css:

html,
body {
height: 100%;
position: relative;
}
body {
overflow-x: hidden;
/* Removes right space for browser scrollbar on mobile */
}
.container {
 margin-right: 15px;
 /* Adjust content to make up for hidden x-overflow 15px on mobile */
 }
 @media (min-width: 768px) {
 .container {
margin-right: auto;
/* Adjust content to middle for non-mobile */
}
}

1 个答案:

答案 0 :(得分:0)

我尝试为JS中的BackStretch框和图像添加高度,例如120px(主要是navbar小于60px)。

...:this.$root.height():this.$root.innerHeight(),g=g+120,...

但当然当你向下滚动时你会得到其他内盒高度,导航栏在向下滚动后消失,窗口变得更高,比我在css / less中冻结盒子更改

    .backstretch.freeze{
&,img{
        -webkit-transition: height 5000s ease-out, width 5000s ease-out, left 5000s ease-out, top 5000s ease-out;
        -o-transition: height 5000s ease-out, width 5000s ease-out left 5000s ease-out, top 5000s ease-out;
        transition: height 5000s ease-out, width 5000s ease-out left 5000s ease-out, top 5000s ease-out;
    }
}
 //hide empty space after navbar hide 
.backstretch{
    img{
        top:-60px;
    }
}

但我得到了下一个问题 - 在更改屏幕旋转后我得到了冻结图像bg。所以我还需要一个JS函数。让我们在调整宽度时放置'冻结'类。但是当我们调整高度时 - 这意味着在移动设备上向下滚动时会导航栏。

var isMobile = false; //initiate as false
isMobile = window.matchMedia("only screen and (max-width: 767px)");
if (isMobile.matches) {


    $.backstretch("Images/bg1-mobil-min.jpg");
    var boxwidth = $('.backstretch').width();

    $(window).resize(function() {
       if (boxwidth != $('body').width() ) { 
         $('.backstretch').removeClass('freeze');
         boxwidth = $('.backstretch').width();
       } else {
         $('.backstretch').addClass('freeze');
         boxwidth = $('.backstretch').width();
       }            
    });

// keep freeze when scroll 
$(document).scroll(function() {
    $('.backstretch').addClass('freeze');
 });

}

好吧那么......在移动设备上我们改变旋转bg chages但是当向下滚动时不是 - 完美。但有人可以使代码正确。 THX