Как заменить div на другой, с его увеличением и при этом затемненить фон страницы?

224
25 апреля 2022, 21:10

Помогите, пожалуйста решить огроменную проблему(( нужно заменить блок при клике на другой, чтобы он стал больше и при этом выехал на середину страницы и фон страницы затемнился, пока есть такой вариант, но это наполовину то, что нужно

    <head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<style type="text/css">
.product.big{
    -webkit-transform:scale(1.4) translateY(60px);
    -moz-transform:scale(1.4) translateY(60px);
    -o-transform:scale(1.4) translateY(60px);
    transform:scale(1.4) translateY(60px);
    z-index:10;
  }
  .product:first-child.big{
    -webkit-transform:scale(1.4) translateY(60px) translateX(40px);
    -moz-transform:scale(1.4) translateY(60px) translateX(40px);
    -o-transform:scale(1.4) translateY(60px) translateX(40px);
    transform:scale(1.4) translateY(60px) translateX(40px);
    z-index:10;
  }
  .product{
    position:relative;
    float:left;
    -webkit-transition:all 1.2s ease-in-out;
    -moz-transition:all 1.2s ease-in-out
    -o-transition:all 1.2s ease-in-out;
    -ms-transition:all 1.2s ease-in-out;
    transition:all 1.2s ease-in-out;
  }
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
   $(function(){
      $(".productcard-body").on("click", function() {
      $(".product").not($(this).parent().toggleClass("big")
).removeClass("big");
      })
     $('html').click(function (event) {
          if ($(event.target).closest('.product' ).length) return;
          $(".product").removeClass("big");
      });
   })
  </script>
</head>
<body>
<div class="container-fluid gray">
                        <div class="row">
                            <div class="arrow_header col-11 marg_no_arrow">
                                <div class="row justify-content-center">
                                   <div class="col-xl-4 col-lg-4 col-md-10 col-sm-12 col-12 d-flex justify-content-center card_first_divider_b">
                                        <div class="card shadow product" style="max-width: 390px;">
                                            <img class="card-img-top" src="img/platina.png" alt="Платина">
                                            <div class="card-body productcard-body">
                                                <p class="card-text">Звонки и заявки от&nbsp;покупателей</p>
                                                <p class="card-text">Полнофункциональный интернет-магазин</p>
                                                <p class="card-text">Загрузка до %х% товаров</p>
                                                <p class="card-text">Место в каталогах выше Золотых компаний</p>
                                                <p class="card-text c_t_last">Персональный контент-менеджер</p>
                                                <span href="#" class="btn btn_first btn-orange"><img src="" alt="">УЗНАТЬ БОЛЬШЕ</span>
                                            </div>
                                        </div>
                                   </div>
                                   <div class="col-xl-4 col-lg-4 col-md-10 col-sm-12 col-12 d-flex justify-content-center card_first_divider_b">
                                        <div class="card shadow product" style="max-width: 390px;">
                                            <img class="card-img-top" src="img/gold.png" alt="Платина">
                                            <div class="card-body productcard-body">
                                                <p class="card-text">Звонки и заявки от&nbsp;покупателей</p>
                                                <p class="card-text">Полнофункциональный интернет-магазин</p>
                                                <p class="card-text">Загрузка до %х% товаров</p>
                                                <p class="card-text">Место в каталогах выше Золотых компаний</p>
                                                <p class="card-text c_t_last">Персональный контент-менеджер</p>
                                                <span href="#" class="btn btn_first btn-orange">УЗНАТЬ БОЛЬШЕ</span>
                                            </div>
                                        </div>
                                   </div>
                                   <div class="col-xl-4 col-lg-4 col-md-10 col-sm-12 col-12 d-flex justify-content-center card_first_divider_b">
                                        <div class="card shadow product" style="max-width: 390px;">
                                            <img class="card-img-top" src="img/aurum.png" alt="Платина">
                                            <div class="card-body productcard-body">
                                                <p class="card-text">Звонки и заявки от&nbsp;покупателей</p>
                                                <p class="card-text">Полнофункциональный интернет-магазин</p>
                                                <p class="card-text">Загрузка до %х% товаров</p>
                                                <p class="card-text">Место в каталогах выше Золотых компаний</p>
                                                <p class="card-text c_t_last">Персональный контент-менеджер</p>
                                                <span href="#" class="btn btn_first btn-orange a_first_card">УЗНАТЬ БОЛЬШЕ</span>
                                            </div>
                                        </div>
                                   </div>
                                </div>
                            </div>
                        </div>
                    </div>

<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script>
</body>
Answer 1

Обычно делается отдельно блок popup, которому проставляется максимальный z-index на странице, внутри него находиться черный и прозрачный фон (затемнение), и содержимое которое отображается поверх

Если используете jQuery cодержимое можете поместить туда с помощью методов для манипуляции DOM https://jquery-docs.ru/category/manipulation/, например .replaceWith()

А дальше только стили, и возможно подправить структуру DOM в всплывающем окне.

Рекомендую поискать и почитать про всплывающие окна. Там и реализаций кучу на выбор найдёте.

READ ALSO
Выделить модальное окно полужирным шрифтом и выделить цветом

Выделить модальное окно полужирным шрифтом и выделить цветом

Нужно в модальном окне выделить текст полужирным шрифтом и выделить желтым цветом:

86
Можно ли сделать вырез в виде круга в div на css?

Можно ли сделать вырез в виде круга в div на css?

Очередная рубрика "Можно ли сделать такое на css":) Есть ли возможность сделать подобный вырез на css без svg? По плану сзади должен быть canvas...

197
Скопировать положение скроллбара в другой

Скопировать положение скроллбара в другой

У меня есть 2 таблицы в html со скроллбарамиМне нужно чтобы, когда скроллишь в одной странице, тот же скролл дублировался и в другой

166