Как сохранить позицию прокрутки в диалоге SimpleModal - PullRequest
2 голосов
/ 16 января 2010

Как можно сохранить положение прокрутки прокручиваемого элемента 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>

1 Ответ

2 голосов
/ 16 января 2010

Я протестировал это решение с помощью 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();
      }
    });
  });
});
...