0

そのdivが表示されたときにdivのコンテンツを更新するAJAXリクエストを作成しようとしています。私の最初の考えは、表示される div を監視する Event オブザーバーを使用することでしたが、適切なハンドラーが見つからないようです。「表示中」の要素に対して AJAX リクエストを行う簡単な方法はありますか?

4

1 に答える 1

0

「オンショー」とは、ブラウザのビューポート内に表示されることを意味すると思います。その場合、要素がビューポート内にあるかどうかを確認し、これを変更するものを観察する必要があります。

これは、要素がビューポート内にあるかどうかを確認するための基本的な関数です。

function withinViewport(el) {
    var elOffset = $(el).cumulativeOffset(el);
    vpOffset = document.viewport.getScrollOffsets();
    elDim = $(el).getDimensions();
    vpDim = document.viewport.getDimensions();
    if (elOffset[1] + elDim.height < vpOffset[1] || elOffset[1] > vpOffset[1] + vpDim.height ||
        elOffset[0] + elDim.width < vpOffset[0]  || elOffset[0] > vpOffset[0] + vpDim.width) {
        return false;
    }
    return true;
}

次に、たとえば、スクロールイベントを観察して、要素がビューに移動したかどうかを確認できます

Event.observe(window, 'scroll', function() {
       if(withinViewport('element')){
          new Ajax.Updater("element","script.php");
       }
});
于 2010-05-25T08:31:44.137 に答える