在Windows 8 Javascript App中导航到页面的特定部分

时间:2012-12-05 06:56:09

标签: windows-8 windows-store-apps

我正在使用JavaScript& amp;开发一个Windows 8应用程序。 HTML。

  1. 我有一个水平放置不同部分的页面。我在另一个页面中有这些部分的链接。我希望页面从该特定部分加载(意味着页面应该从本节开始)。

  2. 我正在使用网格模板并在主页面中有一个列表视图。当我单击组中的任何项目时,导航到该页面并返回主页面。我想要从我之前选择的部分加载主屏幕。屏幕应该自动滚动到该部分,就像它从语义缩放中发生的那样。

  3. 这方面的任何帮助都将非常有用。

    由于

3 个答案:

答案 0 :(得分:0)

对于第一部分,将容器的scrollLeft属性设置为要滚动到的元素的offsetLeft属性应该足够了。

第二部分可以通过在导航之前存储ListView的scrollPosition属性并在导航后将其设置为旧值来实现。

答案 1 :(得分:0)

正如Ma_li所说,向左滚动是一种解决方案 - 特别是对于 ListView内容。这里的关键是您在导航时需要保持多少经验。一个选项(同样,对于非列表视图内容)是找到您想要在屏幕上的元素,并在元素上调用scrollIntoView然而,这只会将项目带到屏幕上 - 它不会将它一直带到左侧(或右侧,对于BIDI语言),它会滚动足够来显示屏幕上的整个元素。

对于ListViews ,您应该使用indexOfFirstVisibleItem(或indexOfLastVisibleItem)将列表视图滚动到正确的位置。这是关键,因为listview是一个虚拟化控件,这提供了最准确的&滚动列表视图位置的可靠方法。

答案 2 :(得分:0)

感谢Dominic& ma_il

我尝试了第一个问题的document.getElementBy(“Id”)。focus()并且它有效。但我在这方面遇到了问题。

我有四个divs水平地说“divA divB divC divD” divA的数据来自云。当我在主屏幕中单击divD的链接时。第一次没有把我带到相应的部分,因为加载divA需要一些时间。当第二次点击divD的链接时,它会转到相应的部分。如果我使用setInterval(),它会工作,但是当页面加载时,DivA会显示几秒钟,然后滚动到divD,这是不好的。