2013-04-05 71 views
5

我有两个不同的HTML文件,两个不同的UIWebViews & a UISegmentControl。在segmentChanged上,我通过加载HTML文件显示WebView。 这两个HTML文件都包含通用部分,只有部分内容被更改。现在,我想要实现的是,当用户加载第二WebView,那么第二WebView需要scroll高达这是他在第一WebView,反之亦然读取section 1.1读取第一WebView &点击Segmentsection 1.1功能。还有n个部分。 我使用下面的javacript,但它需要当前div id的参数。但在scroll上,我怎样才能获得当前可见的div id。我已经为每个div提供了id获取UIWebView当前滚动偏移量的div

function pointInView(id) 
{ 
    var divid = document.getElementById(id); 
    divid.scrollIntoView(true); 
    return false; 
} 

任何人都请帮助我。

回答

2

我搜索了很多,从目前的scroll offset得到DIV ID,但没有得到它的解决方案。所以我选择另一个选项,在两个文件中存储每个节的开始&结束偏移量。所以我在数据库&中创建了一个查找表,在两个文件中存储了每个节的开始&结束偏移量。

ex。当用户scrolls第一个webviewsection 1.1 &点击开关打开第二个文件中的第一个节1.1时,打开第二个webview,然后I scrolled第二个webview

2

我认为jquery可能会来救援。

你可以使用jQuery,因为它是跨浏览器兼容?

http://stackoverflow.com/questions/5353934/check-if-element-is-visible-on-screen 

退房问答形式BenM

+0

上面的链接基本上是为JQuery,但我想用Javascript。 – Girish 2013-04-16 06:02:23

+0

相同的链接有一个JavaScript实现显示在jquery下面。 – nolimitsdude 2013-04-16 10:24:52

1

你并不真的需要一个数据库条目。只是通过一些赶上click事件像

$('.action').click(function(){ 
    document.location = yourSecondFIleLocation+'?offset = ' + $('selectorDiv').detOffsetFromParentDiv(); //or get the scroll offset from the page. 
}); 

,并抓住它的第二页或者与PHP或jQuery的上滚动到它。

哎呀,如果你把你的代码中的段落标记和链接正确地向他们甚至可以实现的。

+0

我没有在webview中的任何地方点击,只是滚动它。 – Girish 2013-04-17 04:00:25

+0

然后有可能。只需在te滚动条上添加事件监听器即可。并在swithichng到另一个窗口时获得位置。 – Sangoku 2013-04-17 07:13:57

+0

非常感谢您的帮助。 – Girish 2013-04-18 04:07:16

0

请尝试以下,

要在我们设定的内容滚动视图偏移任何位置继续滚动滚动视图。 解决您的问题,我们有两个解决方案,

  1. 在你的情况下,当用户查看第一Web视图,如下面 CGFloat的偏移保存内容的第一个网页视图抵消任何变量= webView1.scrollView .contentOffset.y;然后,当你 打开第二个Web视图然后将这个偏移值,第二 Web视图滚动偏移量。根据您的需要

  • 设置 webView1.scrollView.contentOffset = webView2.scrollView.contentOffset 反之亦然我希望这会帮助你。

  • +0

    但是这两个文件中的偏移量都不相同。只有部分是相同的。 – Girish 2013-04-17 05:26:52