Всплытие блока там где произошел click

123
05 апреля 2019, 02:40

Есть скрытый блок iframe, который находится в body. На сайте есть проекты, у которых есть ссылка перехода на карточку проекта. Но при клике на проект происходит ajax запрос, который передает страницу карточки в скрытый iframe. Iframe отсюда раскрывается плавно и заполняет всю страницу экрана. Всплытие начинается с центра экрана. Вопрос. Возможно ли сделать всплытие этого блока оттуда откуда произошел клик по проекту, то есть всплытие iframe начать с центра блока проекта а не с центра всего body. Вот реализация моего кода

$( document ).ready(function() {
$(".case_item_mob .case_link_<?php echo $post->ID ?>").on("click", function(e) {
    e.preventDefault();
    $.ajax({
      url: "<?php the_permalink(); ?>",
      success: function(data){
        $("#frame").attr("src", "<?php the_permalink(); ?>");
        $('.iframe_project, #frame').css({
            'background-repeat':'no-repeat',
            'background-position':'center',
            'background-size':'cover',
            'position':'fixed',
            'top':'0',
            'left':'0',
            'width':'100%',
            'height':'100%',
            'z-index':'100',
        });
        $('#frame').removeClass('animated zoomOut');
        $('#frame').addClass('animated zoomIn');
        $('.iframe_project, #frame').fadeIn();
        $("body").css("overflow", "hidden");
        $('.close').fadeIn();
        history.pushState(null, null, '<?php the_permalink(); ?>');
      }
    });
});
$(".close").on("click", function(e){
    e.preventDefault();
    $('#frame').removeClass('animated zoomIn');
    $('#frame').addClass('animated zoomOut');
    $('#frame, .iframe_project').fadeOut(2100);
    $("body").css("overflow", "auto");
    $('.close').fadeOut();
    history.pushState(null, null, '/');
    setTimeout(function(){
        var frame = document.getElementById("frame"),
        frameDoc = frame.contentDocument || frame.contentWindow.document;
        frameDoc.documentElement.innerHTML = "";
    }, 2100);                                   
});

});

Answer 1

В таком случае решением может послужить не просто менять src у iframe, а аппендить целиком iframe c нужным src в нужный блок

READ ALSO
Вывод результата сравнения строк

Вывод результата сравнения строк

Есть 2 строки, хочу вывести разницу между ними после их сравненияДля этого я решила преобразовать их к массивам, потом сравнивать эти массивы,...

180
Как удалить узел из DOM

Как удалить узел из DOM

Может тут кто-то подскажет решение проблемы? Пишу просто туду лист через классы, и не могу запустить метод deleteTask, тк не знаю как его закрепить...

175
Как в Webpack 4 настроить Css Modules?

Как в Webpack 4 настроить Css Modules?

как в Webpack настроить CSS Modules чтобы генерировать вот такие классы (Hesh)

164