0

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

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

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

在这方面的任何帮助都将大有裨益。

谢谢

4

3 回答 3

0

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

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

于 2012-12-05T10:03:21.987 回答
0

谢谢多米尼克和邮件

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

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

于 2012-12-11T11:18:52.430 回答
0

正如 Ma_li 所说,向左滚动是一种解决方案——尤其是对于ListView 内容。这里的关键是您在返回时想要保持多少体验。一种选择(同样,对于非列表视图内容)是找到您想要在屏幕scrollIntoView上显示的元素,然后调用该元素。但是,这只会将项目带到屏幕上——它不会一直到左边(或右边,对于 BIDI 语言),它的滚动刚好足以让整个元素出现在屏幕上。

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

于 2012-12-05T16:29:58.800 回答