У меня есть php-скрипт, который показывает журнал своих действий по мере продолжения сценария. Журнал становится довольно длинным, вплоть до того момента, когда он будет отражать его информацию в нижней части страницы, добавив полосу прокрутки на страницу.
Если я хочу увидеть остальную часть журнала, мне придется вручную прокрутить вниз. Я могу заставить страницу пойти, чтобы сказать … process.php # bottom, но я не могу просто вставить <a name="bottom" />
после каждого элемента журнала и ожидать, что браузер продолжит прыгать на дно, могу ли я ?
Есть ли функция javascript или другой простой метод, который автоматически прокручивает страницу до нижней части, как только это не так?
Я не возражаю, если он переопределяет способность пользователя прокручивать, так как сценарий будет перенаправляться обратно к основному скрипту через 3 секунды в конце в любом случае.
Мне не обязательно нужен полный скрипт, если у вас есть указатели, но те, которые обеспечивают полный рабочий сценарий, очевидно, получат их ответ за те, которые просто дают указатели.
Если у вас нет представления о том, что я имею в виду под журналом, вы можете использовать следующий скрипт для моделирования того, что делает мой скрипт:
<?php for( $iLineNumber=0 ; $iLineNumber <100 ; $iLineNumber++ ) { echo $iLineNumber , ' - This is a test. <br />'; sleep(1); } ?>
По сути, поскольку скрипт загружается и спит каждую секунду, когда он попадает в нижнюю часть страницы, он должен автоматически прокручиваться вниз каждую секунду.
Это работает:
<script> setTimeout(printSomething, 1000); function printSomething(){ for(var i=0; i<10; i++){ document.write("Hello World\n"); document.write("<br>"); } window.scrollTo(0,document.body.scrollHeight); setTimeout(printSomething, 1000); } </script>
Каждые 5 секунд он прокручивает страницу до нижней части страницы.
function autoScrolling() { window.scrollTo(0,document.body.scrollHeight); } setInterval(autoScrolling, 5000); // adjust the time limit based on the frequency log gets updated
<html> <body> <script type="text/javascript"> setInterval(function() { document.body.innerHTML += "<p>New log</p><br>" }, 5000); </script> </body> </html>
Я думаю, что вы ищете это: http://www.w3schools.com/jsref/met_win_scrollto.asp
И затем, используется вместе с этим: http://www.w3schools.com/jsref/prop_element_scrollheight.asp
Вы можете сделать что-то вроде:
function scrollToBottom{ window.scrollTo(0, document.body.scrollHeight); }
function fun() { $("div").scrollTop(50); }
теперь использовать
<body onload="fun">