2015-02-20 2 views
0

У меня есть модальный с функцией перетаскивания. Он отлично работает, но когда я закрываю и снова открываю модальный, он сохраняет свою последнюю позицию. Например, если я перетащил модальный в нижнюю часть окна и закрою его, когда я снова открою модальный, это находится в нижней части окна. Мне нужно, чтобы это было сосредоточено, поскольку это был первый раз, когда он был запущен. Я использую JQuery UI и Bootstrap здесь.JQuery UI Draggable Modal

Вот мой код:

<div class="outerContainer"> 
.... 
.... 
     <!-- Modal --> 
      <div class="modal fade" id="alertModal" tabindex="-1" role="dialog" aria-labelledby="alertModalLabel" aria-hidden="true"> 
       <div class="modal-dialog" id="contentModal"> 
        <div class="modal-content"> 
         <div class="modal-header"> 
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
          <h4 class="modal-title" id="alertModalLabel">Add Alert</h4> 
         </div> 
         <div class="modal-body"> 
          <div class="container-fluid"> 
           @Html.Partial("~/Views/Shared/Maintenance/_AddAlert.cshtml", Model.AlertViewModel); 
          </div> 
         </div> 
         <div class="modal-footer"> 
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
          <button type="button" class="btn btn-primary">Save changes</button> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 

    <script> 
    $(function() { 
      $("#alertModal").draggable({ 
       handle: ".modal-header", 
       scroll: false, 
       containment: '#outerContainer' 
      }); 
     }); 
    </script> 
+0

уничтожить его модальное закрытие: http://stackoverflow.com/a/15551781/2454790 и перетащить его на модально открытой ... – pbenard

ответ

1

При закрытии/открыть его можно подключить в модальных событий и повторно позиции соответственно:

$('#alertModal').on('hidden.bs.modal', function (e) { 
    // reposition modal according to window/viewport here 
}); 

См bootstrap docs, где он говорит о закреплять в событиях ,

НТНЫ

+0

Это выглядит многообещающим, но я не знаю, как восстановить исходное положение, когда модальная была впервые загружена. –

+0

Вы не можете сохранить начальную позицию и повторно использовать ее (потому что пользователь может изменить размер окна) - это должен быть вычисление ширины модальности по сравнению с шириной точки обзора (экран. width()), аналогичную высоту WRT и соответственно соответствующую настройку слева и сверху. –