anton99zel
@anton99zel
29а класс средней школы №7

Как сделать, чтобы popup окно появлялось по центру экрана?

Есть окно, которое всплывает по нажатию на ссылку. Ссылка в конце длинной страницы, а окно всплывает сверху страницы. Как сделать, чтобы окно появлялось по центру экрана и не надо было прокручивать страницу вверх.
<script>

$(document).ready(function() {	

  //select all the a tag with name equal to modal
  $('a[name=modal]').click(function(e) {
    //Cancel the link behavior
    e.preventDefault();
    //Get the A tag
    var id = $(this).attr('href');
  
    //Get the screen height and width
    var maskHeight = $(document).height();
    var maskWidth = $(window).width();
  
    //Set heigth and width to mask to fill up the whole screen
    $('#mask').css({'width':maskWidth,'height':maskHeight});
    
    //transition effect		
    $('#mask').fadeIn(1000);	
    $('#mask').fadeTo("slow",0.8);	
  
    //Get the window height and width
    var winH = $(window).height();
    var winW = $(window).width();
              
    //Set the popup window to center
    $(id).css('top',  winH/2-$(id).height()/2);
    $(id).css('left', winW/2-$(id).width()/2);
  
    //transition effect
    $(id).fadeIn(2000); 
  
  });
  
  //if close button is clicked
  $('.window .close').click(function (e) {
    //Cancel the link behavior
    e.preventDefault();
    $('#mask, .window').hide();
  });		
  
  //if mask is clicked
  $('#mask').click(function () {
    $(this).hide();
    $('.window').hide();
  });			
  
});

</script>
  • Вопрос задан
  • 433 просмотра
Решения вопроса 1
Chefranov
@Chefranov
Новичок
Возможно у вашего поп-апа не задано position:fixed
Но такие вещи обычно делается с помощью CSS.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Изначально попап и затемняющий блок скрыты (display: none).
По кнопке ставишь попапу и фоновому затемнению класс show, который меняет им display на block.
Фоновый растянут на все окно и не скроллится.
position: fixed;
top: 0; left: 0; bottom: 0; right: 0;

Попап тоже не скроллится, и выравнивание по центру.
position: fixed;
top: 50%; left: 50%;
transform: translate(-50%, -50%);

https://jsfiddle.net/u2uh8s71/1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы