我在一个滚动网页上有一个position:fixed的div。
一开始事件是有效的,但是当页面滚动时,虽然fixeed div保持不动,但它的“触摸”区域似乎会改变(似乎会滚动 - 除非在另一个div的顶部,或者取决于页面布局...)。最终如果你滚动太多就不再接收到任何触摸事件了。有时候下面的div会收到事件。
这是样例:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;">
<meta name="apple-mobile-web-app-capable" content="yes" />
<style>
#fixed {
position: fixed;
width:200px;
height:200px;
z-index:1;
background: rgba(100,0,0,0.5);
}
#scrolling {
display: block;
position: absolute;
top: 100px;
left: 100px;
width:200px;
height:999px;
background: rgba(0,100,0,1);
}
</style>
</head>
<body>
<div id="fixed" ontouchend="alert('touch fixed')"></div>
<div id="scrolling" ontouchend="alert('touch scrolling')"></div>
</body>
当你滚动到足够的位置并且在红色"fixed" div的左侧触摸时,没有任何反应(没有警告)。然而,在右侧(绿色滚动div的上方)它可以正常工作... ?!
在我看来,这似乎是Safari的一个bug。你有同样的经历吗?有什么解决方法?(Iscroll不被考虑-太慢)
谢谢, LC