【问题标题】:How to animate col resize in bootstrap 4?如何在引导程序 4 中为 col 调整大小设置动画?
【发布时间】:2021-02-05 07:42:04
【问题描述】:

我有一个布局结构,比如一行有两列,在页面开始时我应该只看到一个全屏宽度的列,所以我将它设置为col-sm-12,而一旦触发事件,我必须显示右边列设置为col-sm-4 的侧列和col-sm-12 的主列应变为col-sm-8

所以布局看起来像这样,我做了一个例子,当点击 col-sm-12 时,我会显示另一列:

$('.main').on('click', function() {
  $('.main').removeClass('col-sm-12')
  $('.main').addClass('col-sm-8')
  $('.side').removeClass('d-none')
})
html,
body {
  height: 100%;
}

.main {
  background-color: #ff23;
}

.side {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous" />
<div class="container-fluid h-100">

  <div class="row h-100">
    <div class="col-sm-12 main">

    </div>
    <div class="col-sm-4 d-none side">

    </div>
  </div>


</div>

在此我如何设置从 col-sm-12 到 col-sm-8 的列宽变化的动画? 我会做一些事情,比如隐藏的列会通过拉伸它或任何其他花哨的动画来推动另一个……

【问题讨论】:

    标签: javascript html jquery css bootstrap-4


    【解决方案1】:

    我认为过渡 css 属性应该做的事情,但我不确定。尝试设置: div[class*="col-"] { transition: .3s ease; } 告诉我。

    【讨论】:

    • 是的,动画是我一直在寻找的,但在此期间,col-sm-4 显示在 col-sm-12 下方,直到它开始调整大小
    • jsfiddle.net/pygacfbv 在这里你可以看到发生了什么......当过渡开始时,侧栏出现在底部并且整个屏幕在那时看起来有问题
    • hatebin.com/fvqlcocbov 此代码适用于我,但在侧面板显示之前有 0.4 秒的延迟。如果是问题,我会尝试寻找其他解决方案。
    • 这样好多了,但是仍然可以进行像 .side 从右到左这样的转换吗?首先很容易,主列被拉伸,侧面只出现在 removeClass('d-none') 之后,这有点难看 [i.gyazo.com/95993aa1a66569c19de13d68b1598979.gif](here)
    • 我不确定它是否可以使用引导程序的预定义值,但我会尝试修复它。
    猜你喜欢
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2018-01-09
    相关资源
    最近更新 更多