Как остановить прокрутку вверх после вызова ajax

Я обновляю определенное содержимое элемента htm с помощью функции setInterval для вызова ajax каждые несколько секунд.

<div class="content">
<p>New informaton here</p>
<br>
<p>.......</p>
more information below
</div>

ниже джаваскрипт

var main = function(){
        updatingMessage = setInterval(function(){
         $.ajax({
        type: "POST",
        url:" call_MYSQLDatabase_To_Update_Content.php",
        cache:0,
        data:({
           some vars
             }),
        success:function(result){
         $(".content").html(result);
                          }
                 });  
                       }, 1000);
     updatingMessage();
        }
$(document).ready(main);

Что меня беспокоит, так это то, что каждый раз, когда я прокручиваю вниз, чтобы увидеть информацию, она будет прокручиваться вверх после каждого вызова ajax.
Можно ли оставаться на той же позиции <p> после ajax-вызова?


person EEEEEric    schedule 02.05.2015    source источник
comment
Вы хотите остаться на том же месте, где вы были, когда был вызван ajax? Что вы хотите, чтобы произошло, если новый контент короче старого?   -  person Sidd    schedule 02.05.2015
comment
Это именно то, что я имел в виду, я никогда не смогу добраться до информации внизу, если она прокручивается вверх каждую секунду.   -  person EEEEEric    schedule 02.05.2015


Ответы (1)


Сначала вы должны получить позицию прокрутки элемента, а затем убедитесь, что вы поддерживаете эту позицию, установив атрибут scrollTop в исходное положение.

var position = element.scrollTop;

//do some work here, which might change the position

element.scrollTop = position;
person Adviov    schedule 02.05.2015
comment
Итак, вы имеете в виду, что я должен получить текущую позицию ‹p›, где я останавливаюсь, а затем прокрутить ее после вызова ajax? - person EEEEEric; 02.05.2015
comment
Да, это должно сработать. Получите правильное положение при получении данных и установите его таким же после того, как вы вставили данные на страницу. Вы можете добавить проверку, чтобы увидеть, короче ли новый контент, и в этом случае установите позицию внизу, используя element.scrollTop = element.scrollHeight - person Sidd; 02.05.2015
comment
Я предполагаю, что ваш <div> прокручивает ваши <p> элементы, и в этом случае получите позицию прокрутки <div> - в противном случае получите позицию прокрутки того элемента, который когда-либо прокручивается, и установите для нее любое значение, которое было до вызова ajax. - person Adviov; 02.05.2015