2011-10-04 119 views
7

需要在网页的顶部显示一个元素(div)。在滚动期间,元素应该消失并在滚动结束后重新出现。iphone上的页面滚动时隐藏和显示div

为了增加复杂性:

  1. 我们的代码是来宾代码(因此我们不能操纵DOM结构等)。
  2. 我们的代码是为了用iPhone/iPad(移动Safari浏览器)

我们一直在努力,听取他们对文件/身体touchstart事件,并隐藏在我们的专用处理器的元素(div)工作。但是,在某些站点(当DOM结构变得相当复杂时),滚动响应时间会显着增加,即使处理程序执行完全是,为空。

我们正在寻找正确的方式来管理元素(重新)外观,同时滚动时对用户体验的影响最小。

回答

0

在最近的IOS版本(5.x的)固定定位(position:fixed在CSS)的支持流畅,让你的元素会被放置在屏幕坐标。这可能是解决你的麻烦的一个很好的起点。

+0

不能使用键盘输出 – Petah

+0

固定在iOS 6上不可靠... “注意:只能在Android 2.2+中使用以下元标记:。iOS Safari中的部分支持指的是错误行为。” --http://caniuse.com/css-fixed – nym

1

我会认为Javascript是你最好的解决方案。你可以使用document.createElement动态地将你的DIV插入到任何内容中,然后添加一些javascript来监听onScroll ...

如果你愿意,你甚至可以使用由本机代码构建的自定义HTML来填充DIV。

任何帮助?

+1

'onScroll'处理程序在* scroll之后被调用,在我们的例子中,我们希望在* scroll开始之前隐藏元素*。 – roee

1

我不知道你是否是jQuery用户,但这个.scroll()函数可以帮助你完成你想要做的事情。看看演示,看看它是如何工作的。

http://api.jquery.com/scroll/