【问题标题】:Navigating to a specific section of a page in windows 8 Javascript App在 Windows 8 Javascript App 中导航到页面的特定部分
【发布时间】:2012-12-05 06:56:08
【问题描述】:

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

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

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

在这方面的任何帮助都会非常有用。

谢谢

【问题讨论】:

    标签: windows-8 windows-store-apps


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        感谢多米尼克和邮件

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

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

        【讨论】:

          猜你喜欢
          • 2018-11-25
          • 2021-09-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-20
          • 2020-10-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多