1

在水平 listView 中 - 是否有可能知道某个片段是否在屏幕“外部”?

4

1 回答 1

3

因为 WinJS 本质上是在 IE 10 中运行,所以您可以像处理常规 Web 问题一样处理此问题。其中一些是从 Check if element is visible after scrolling借来的

使用 JQuery,您可以执行以下操作:

function isScrolledIntoView(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)
      && (elemBottom <= docViewBottom) &&  (elemTop >= docViewTop) );
}

您也可以在纯“WinJS”(Internet Explorer 10 + JavaScript)中执行此操作,它看起来像:

function isScrolledIntoView(elem)
{
    var docViewTop = window.pageXOffset;
    var docViewBottom = docViewTop + window.innerHeight;

    var elemTop = =  document.getElementById(elem).offsetTop
    var elemBottom = elemTop + =  document.getElementById(elem).offsetHeight

    return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)
      && (elemBottom <= docViewBottom) &&  (elemTop >= docViewTop) );
}
于 2012-06-20T13:38:32.677 回答