如何在SimpleModal对话框中保持滚动位置

时间:2010-01-16 02:50:28

标签: jquery dialog scroll modal-dialog 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>

1 个答案:

答案 0 :(得分:2)

我使用Simple Modal测试了这个解决方案,它可以正常工作

如果您正在使用Basic Dialog演示,只需更改此代码的basic.js文件即可。它只是在对话框关闭之前获取scrollTop,并在对话框重新打开时重置它。由于SimpleModal的工作方式,我们每次都必须调用div的完整选择器:

$(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();
      }
    });
  });
});