滚动时隐藏的元素出现在移动浏览器中

时间:2013-09-10 23:26:32

标签: javascript jquery css mobile-safari mobile-chrome

以下示例是我用于portfolio网站的方法。

它位于'我居住的地方','它是如何开始的,'我如何工作'在关于部分,每个滑块都有图像和谷歌地图。我在我的网站示例中输入了代码,但我删除了“overflow:hidden”,因为它导致黑色方块出现并在Chrome屏幕上闪烁。滑块适用于台式计算机中的浏览器。

当我使用iphone中的safari和chrome等移动浏览器以及android中的chrome时会出现问题。

“滑块”中的Google地图显示在屏幕顶部,即使我没有打开它,当我关闭它后滚动页面时,“slider3”中的图像卡在屏幕上。 在移动Safari的情况下,它在开始时看起来没问题,但是一旦我打开和关闭滑块,当我滚动页面时它们就会卡在屏幕的顶部或底部。

我对“slider2”没有同样的问题,也许是因为它在旁边。

有谁知道移动浏览器出现问题的原因?

提前致谢。

jsfiddle

HTML

<div style="height:100%">
<span id="button">open slider 1</span>
<span id="button2">open slider 2</span>
<span id="button3">open slider 3</span>

    <div id="slider"> <span id="button4">close</span>
    </div>
    <div id="slider2"> <span id="button5">close</span> 
    </div>
    <div id="slider3"> <span id="button6">close</span> 
    </div>
</div>

CSS

html {
    height: 100%;
}
body {
    position: relative;
    height: 100%;
    width: 100%;
    overflow: hidden;
    margin:0;
}
.page.in {
    left: 0;
    z-index: 1;
}

#slider {
    position: absolute;
    width: 100%;
    height: 50%;
    bottom: 100%;
    background: yellow;
    transition: bottom 1s;
}
#slider.in {
    bottom:50%;
}
#slider2 {
    position: absolute;
    width: 50%;
    height: 100%;
    left:100%;
    top:0;
    background: red;
    transition: left 1s;
}
#slider2.in {
    left:50%;
}
#slider3 {
    position: absolute;
    width: 100%;
    height: 100%;
    top:100%;
    background: blue;
    transition: top 1s;
}
#slider3.in {
    top:0;
}

的javascript

$('#button').click(function(){
    $('#slider').addClass('in');
});

$('#button2').click(function(){
    $('#slider2').addClass('in');
});

$('#button3').click(function(){
    $('#slider3').addClass('in');
});

$('#button4').click(function(){
    $('#slider').removeClass('in');
});

$('#button5').click(function(){
    $('#slider2').removeClass('in');
});

$('#button6').click(function(){
    $('#slider3').removeClass('in');
});

0 个答案:

没有答案