6

我有两个不同的 HTML 文件,两个不同UIWebViews的 & 一个UISegmentControl. 在 上segmentChanged,我WebView通过加载 HTML 文件显示了 。两个 HTML 文件都包含公共部分,仅更改了部分内容。现在我想实现这样的功能,当用户读取section 1.1firstWebView并点击Segment加载 secondWebView时,第二个WebView需要scroll达到section 1.1他首先读取的内容WebView,反之亦然。还有n个部分。我使用了以下 javacript 但它需要 current 的参数div id。但是scroll,我怎样才能获得当前的可见性div id。我给了idfor each div

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

任何人请帮助我。

4

4 回答 4

2

我认为 jquery 可能会来拯救你。

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

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

查看 BenM 的答案表格

于 2013-04-15T03:15:47.537 回答
2

我进行了很多搜索以从当前获取 div id,scroll offset但没有得到解决方案。所以我选择了另一个选项,将每个部分的开始和结束偏移量存储在两个文件中。所以我在数据库中创建了一个查找表并将每个部分的开始和结束偏移量存储在两个文件中。

前任。当用户scrolls第一个webviewsection 1.1& 点击开关打开第二个webview,然后我scrolled第二个webview到第二个文件中的 1.1 节。

于 2013-04-15T04:17:11.530 回答
1

你真的不需要一个 db 条目。只需通过类似的方式捕获点击事件

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

并使用 php 或 jQuery 在第二页上捕获它以滚动到它。

如果您在代码中放入段落标记并正确链接到它们,这甚至是可以实现的。

于 2013-04-16T22:18:32.180 回答
0

请在下面尝试,

要在任何位置滚动任何滚动视图,我们设置滚动视图的内容偏移量。为了解决您的问题,我们有两种解决方案,

  1. 在您的情况下,当用户查看第一个 Web 视图时,将第一个 Web 视图的内容偏移量保存在任何变量中,例如 CGFloat offset = webView1.scrollView.contentOffset.y; 然后,当您打开第二个 Web 视图时,将此偏移值提供给第二个 Web 视图滚动偏移量。

  2. 根据您的需要设置 webView1.scrollView.contentOffset=webView2.scrollView.contentOffset 或反之亦然

我希望这能帮到您。

于 2013-04-17T05:23:22.073 回答