gpt4 book ai didi

ios - `-webkit-overflow-scrolling: touch` 因 iOS7 中的初始屏幕外元素而损坏

转载 作者:IT王子 更新时间:2023-10-29 08:01:00 24 4
gpt4 key购买 nike

既然转基因种子已经放出来了,我们可以好好谈谈了!

看起来在 iOS7 中“-webkit-overflow-scrolling: touch”被破坏了。最初不在屏幕上的元素的触摸事件不会触发(或者在某些情况下只是不可靠)。

这是一个例子:

<!DOCTYPE html><html>
<head><title>TEST</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes" />
<style>

#scrollbox {
position: fixed;
top: 0px;
width: 100%;
height: 100%;
overflow: scroll;
-webkit-overflow-scrolling: touch;
}

.touchDiv {
position: relative;
width:100%;
height:80px;
background-color: #FFBBBB;
}

ul, li {
text-indent: 0px;
list-style: none;
padding: 0px;
margin: 0px;
}

li {
padding-top: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #333;
}

</style>
<script type="text/javascript">

function onBodyLoad() {
var touchDiv = document.getElementById("bottomDiv");
touchDiv.ontouchstart = function(e) {
alert("touched");
};

touchDiv = document.getElementById("topDiv");
touchDiv.ontouchstart = function(e) {
alert("touched");
};
}
</script>
</head>


<body onload="onBodyLoad()">


<div id='scrollbox'>
<div id="topDiv" class="touchDiv">Fires an event when touched</div>
<ul>
<li><a href='#' onclick="alert('1')">Link 1</a></li>
<li><a href='#' onclick="alert('3')">Link 3</a></li>
<li><a href='#' onclick="alert('4')">Link 4</a></li>
<li><a href='#' onclick="alert('5')">Link 5</a></li>
<li><a href='#' onclick="alert('6')">Link 6</a></li>
<li><a href='#' onclick="alert('7')">Link 7</a></li>
<li><a href='#' onclick="alert('8')">Link 8</a></li>
<li><a href='#' onclick="alert('9')">Link 9</a></li>
<li><a href='#' onclick="alert('10')">Link 10</a></li>
<li><a href='#' onclick="alert('11')">Link 11</a></li>
<li><a href='#' onclick="alert('12')">Link 12</a></li>
<li><a href='#' onclick="alert('13')">Link 13</a></li>
<li><a href='#' onclick="alert('14')">Link 14</a></li>
<li><a href='#' onclick="alert('15')">Link 15</a></li>
<li><a href='#' onclick="alert('16')">Link 16</a></li>
<li><a href='#' onclick="alert('17')">Link 17</a></li>
<li><a href='#' onclick="alert('18')">Link 18</a></li>
<li><a href='#' onclick="alert('19')">Link 19</a></li>
<li><a href='#' onclick="alert('20')">Link 20</a></li>
<li><a href='#' onclick="alert('21')">Link 21</a></li>
<li><a href='#' ontouchstart="alert('22')">Link 22</a></li>
</ul>
<div id="bottomDiv" class="touchDiv">Fires an event when touched 2</div>

</div>

</body>

我猜这会破坏大多数移动优化的网络应用程序。

上面的代码有什么问题吗?和/或是否有任何解决方法?

(我已经向 apple 提出了一个错误 - 前段时间,但没有回应)

最佳答案

apple dev forums 上似乎有解决此问题的方法

非常感谢 Baicoianu 先生。

基本上,您需要监听父滚动 div 上的触摸事件。所以在我的例子中添加:

document.getElementById("scrollbox").addEventListener('touchstart', function(event){});

到 onBodyLoad 函数。

我猜这是一些事件传播问题,可以通过在更高级别进行监听来解决。

关于ios - `-webkit-overflow-scrolling: touch` 因 iOS7 中的初始屏幕外元素而损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18736297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com