Как сохранить позицию прокрутки в диалоге SimpleModal

Как можно сохранить позицию прокрутки прокручиваемого div в модальном диалоговом окне при его повторном открытии?

Я изменил базовый загружаемый пример simplemodal следующим образом:

<div id="basic-modal-content">
    <h3>Scrollable Modal Dialog</h3>
    <div style="width: 150px; height:100px; overflow: auto;">
        a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>
    </div>
</div>

person user250343    schedule 16.01.2010    source источник


Ответы (1)


Я тестировал это решение с помощью Simple Modal, и оно работает

Если вы используете там демонстрацию Basic Dialog, просто замените basic.js файл для этого кода. Он просто получает scrollTop перед закрытием диалогового окна и сбрасывает его при повторном открытии диалогового окна. Мы должны каждый раз вызывать полный селектор для div из-за того, как работает SimpleModal:

$(document).ready(function () {
  var scrollTop = null;
  $('#basic-modal input.basic, #basic-modal a.basic').click(function (e) {
    e.preventDefault();
    $('#basic-modal-content').modal({
      onShow: function(){
        if(scrollTop !== null) $('#basic-modal-content > div').scrollTop(scrollTop);
      },
      onClose: function(){
        scrollTop = $('#basic-modal-content > div').scrollTop();
        $.modal.close();
      }
    });
  });
});
person Doug Neiner    schedule 16.01.2010