Сдвиньте скрытую загрузочную карту справа налево при нажатии кнопки - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть «карта» bootstrap4, которая скрыта, и я хочу отобразить ее с медленной анимацией слайда справа налево при нажатии кнопки.Ниже приведена разметка

 <div class="card" id="setup" style="display:none;">
 <div class="card-header">Settings</div>
 <div class="card-body">
 Setup
 </div>
 </div>
 </div>

Ниже приведено событие щелчка

 $("#Finalize").click(function () {
  $('#setup).show();
  $("#setup").animate({ left: '0' }, 'slow');
  });

С помощью приведенного выше кода jquery я просто могу отобразить карту, ее эффект анимации не работает?Что не так и как заставить это работать?

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Это сработало для меня:

 $(function(){
 $("#Finalize").click(function () {
  $(".cardcontainer").show();
  var left = $('#card').offset().left;


$("#card").css({left:left}).animate({"left":"0px"}, "slow");

 
  });
  });

  
.cardcontainer{
  position:relative;
  height: 220px;
display:none
}
.card{
    position:absolute !important;
    width:200px;
    right:0px;
   
  
}
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>
  <div class="cardcontainer">
 <div class="card" id="card">
 <div class="card-header">Settings</div>
 <div class="card-body">
 Setup
 </div>
 </div>
 </div>
  </div>

<div>
  <a id="Finalize" href="#" class="btn btn-primary">Go somewhere</a>
</div>
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
   <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
  </body>
</html>
0 голосов
/ 24 ноября 2018

Хорошо, вот HTML:

<div class="card animatable" id="setup" style="display: none;">
  <div class="card-header">Settings</div>
    <div class="card-body">
     Setup
    </div>
  </div>
</div>

Вот CSS (нам нужно определить ширину карты. Я просто поставил 500px, вы можете сделать его таким большим, каким вы этого хотите, очевидно)

#setup {
  width: 500px;
}

А вот и javascript.

$("#Finalize").click(function () {

  if ($('#setup').hasClass('animatable')) {
    $('#setup').show();
    $('#setup').css('margin-left', $(window).width());
    $("#setup").animate({ right: "+=" + $(window).width()}, 'slow'); 
    $('#setup').removeClass('animatable');
  }
});

Примечание Я знаю, вы сказали, что вам не нужен запас.В соответствии с HTML-кодом, который вы разместили, карта появится в левой части экрана с загрузками DOM.Поэтому, если вы запустите анимацию, она вылетит за пределы экрана, потому что она будет двигаться влево, когда она уже находится слева.Таким образом, мы должны переместить его вправо, отсюда и мое поле слева.Теперь, если вы абсолютно не можете иметь поле, вы можете указать абсолютную позицию карты и просто left перевести ее в правую часть экрана.Кроме того, нам нужно задать ширину, чтобы карта не смялась, когда мы перемещаем ее в правую часть экрана.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...