はい、方法はあります。私の例を説明するために YUI の API を使用します。最初に、テキストは何らかの種類の dom 要素にある必要があります。スパン、div、p など、要素にある必要があります。ここではリスト項目を想定します
var viewPortY = YAHOO.util.Dom.getDocumentScrollTop(),
viewPortHeight = YAHOO.util.Dom.getViewportHeight(), i = 0,
// get all the dom elements that contain the text, sorry if this isn't exact, its just a rough example
items = YAHOO.util.Dom.getElementBy(null, 'li', document.getElementById('item-container')),
viewedItems = [];
for (i = 0 ; i < items.length; i++) {
var y = YAHOO.util.Dom.getY(items[i])
if (y > viewPortY && y < (viewPortY + viewPortHeight)) {
viewedItems.push(items[i])
}
}
つまり、基本的に、あなたが興味を持っているテキストを含むすべての dom オブジェクトを取得します。次にループし、Y 座標がビューポート Y と Y + ViewPort Height の間にある人を配列に入れます。