单击按钮时,将隐藏的引导卡从右向左滑动

时间:2018-11-24 07:58:42

标签: javascript jquery html twitter-bootstrap animation

我有一个bootstrap4`card',它已隐藏,我想在单击按钮时以从右向左滑动慢速动画的方式显示它。下面是标记

 <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 :(得分:0)

好,这是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放在屏幕的右侧。同样,我们需要给它一个宽度,以便当我们将其移动到屏幕的右侧时,该卡不会弄皱。

我希望这会有所帮助!

答案 1 :(得分:0)

这对我有用:

 $(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>