Ошибка iOS 5 (safari) с событиями касания HTML в div «position: fixed»

У меня есть позиция: фиксированный div при прокрутке веб-страница.

Сначала событие работает, но когда страница прокручивается, в то время как фиксированные блоки 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>

Когда вы прокручиваете достаточно и касаетесь красного «фиксированного» div с левой стороны, ничего не происходит (без предупреждения). Однако с правой стороны (над зеленым прокручивающимся div) он работает ...?!

Мне кажется, это ошибка Safari. Вы испытываете то же самое? Есть идеи обходного пути? (Об Iscroll не может быть и речи - слишком медленно)

Спасибо, LC

11
задан lacorbeille 10 January 2012 в 19:58
поделиться