Test!

写真とWebデザインと時たまダイエット

PHP で途中出力しながら、Javascriptで最下部にスクロールする

PHPで処理の経過を出力しつつ、最下部までスクロールしたい。
headとかにスクリプトを書いても、DOMがすべて読み込まれてないと処理されなかったりした。

こちらを参考に
https://www.itcore.jp/php_c/uFlush.php
直接、PHPスクリプトを出力して動作ささせる方法にしてみた。
ただ、clientHeightでは要素内の高さしか取得してくれないので
ログの出力件数が多くなってきたりするとうまく動作しなかった
(ある一定の件数までは動作するがその後途中で止まってしまう)
なのでこちらの記事にあるページの最下部に移動する場合を参考に
「領域外で表示されないコンテンツを含む、要素のコンテンツの高さの測定値」から表示領域を引いて一番下までスクロールされるようにしてみた。

JavaScriptでスクロールを最下部に移動する方法 - Qiita

    echo "<script>var element = document.documentElement;
    var bottom = element.scrollHeight - element.clientHeight;
    window.scroll(0, bottom);</script>";
    // echo "\n<script>document.body.scrollTop = document.body.scrollHeight</script>\n";
    @ob_flush(); // 出力バッファをフラッシュ(送信)する
    @flush(); // システム出力バッファをフラッシュする。