似乎如果你有一个带水平滚动的div,在一个固定的div内,它会阻止IOS上的垂直滚动。 I.E - 如果我通过将手指放在水平滚动div上开始滚动,并尝试垂直滚动,则没有任何反应。
似乎对我的同事Andriod设备没问题。
我创建了一个测试用例,在此处演示了这个问题:
这是html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
some content underneath
<div class="pop-up">
<p>I'm some other content</p>
<div class="scrollable">
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
<div class="item">hi</div>
</div>
<div class="somemoretext">
hello there, I am some text to make things scrollable
</div>
</div>
</body>
</html>
这是css
p {
font-size:22px;
}
.item {
display:inline-block;
width:80px;
height:60px;
font-size:78px;
}
.scrollable {
width:350px;
white-space: nowrap;
overflow-x:scroll;
overflow-y:hidden;
}
.pop-up {
position:fixed;
height:300px;
background:red;
border: 1px solid #000;
width:100%;
top:0;
overflow-y:scroll;
z-index:9999;
}
.somemoretext {
padding-top:600px;
}
感谢您的帮助。
答案 0 :(得分:7)
以下css修复了您的问题
html,body{height:100%}
body{background:red}
p {
font-size:22px;
}
.item {
display:inline-block;
width:80px;
height:60px;
font-size:78px;
}
.scrollable {
width:350px;
white-space: nowrap;
overflow-x:scroll;
overflow-y:hidde;
position: relative;
-webkit-transform: translateZ(0);
}
.pop-up {
position:fixed;
height:300px;
background:blue;
border: 1px solid #000;
width:100%;
top:0;
overflow-y:scroll;
z-index:9999;
-webkit-overflow-scrolling: touch;
}
.somemoretext {
padding-top:600px;
}
包含-webkit-的行是在Safari中进行滚动工作的关键 在.pop-up DIV中你需要overflow-y:scroll和-webkit-overflow-scrolling:touch来强制滚动。在.scrollableyou需要-webkit-transform:tranzlateZ(0);要上下移动实际的html内容,其他方面DIV会滚动但溢出的内容不会显示。
答案 1 :(得分:0)
只需在身体样式中添加-webkit-overflow-scrolling: touch;
就可以解决此问题。