1

水平方向の listView で、特定のフラグメントが画面の「外側」にあるかどうかを知ることは可能ですか?

4

1 に答える 1

3

WinJSは基本的にIE10で実行されているため、通常のWebの問題と同じようにこれに取り組むことができます。この一部は、スクロール後に要素が表示されるかどうかを確認するから借用してい ます

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 に答える