【问题标题】:Animation / Transition fullscreen button parent and make parent siblings slide to the side and disappear动画/过渡全屏按钮父级并使父级兄弟姐妹滑到一边并消失
【发布时间】:2016-09-21 14:33:23
【问题描述】:

我要做什么:
我正在尝试为每个包含 1 个按钮的 3 个 div 设置动画。当单击其中一个按钮时,我希望包含它的 div 滑动到全屏,而另外两个,即父级的兄弟姐妹,滑动到 0% 宽度并消失,作为一个漂亮、好看的动画。

什么不起作用:
似乎我无法让动画看起来流畅,两个消失的元素给我带来了很多问题,主要是因为 0% 宽度过渡不适合我。

我制作了一个包含我的问题的小提琴,并且有兴趣使这个过渡/动画尽可能流畅。

HTML:

<div id="testpile" class="inner cover">
  <div id="buttons" class="buttons">
    <div class="col-md-4 rat">
      <h1>Rationelt</h1>
      <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p>
      <button id="1" class="btn btn-group btn-default" role="button">Personligt</button>
    </div>
    <div class="col-md-4 emo">
      <h1>Emotionelt</h1>
      <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p>
      <button id="2" class="btn btn-group btn-default" role="button">Personligt</button>
    </div>
    <div class="col-md-4 per">
      <h1>Personligt</h1>
      <p class="text-justify">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam laoreet, risus vel tincidunt sagittis, lorem risus faucibus mi, eget tincidunt ipsum sapien vel dolor. Mauris pulvinar leo feugiat, ultricies est ut, porta arcu.</p>
      <button id="3" class="btn btn-group btn-default" role="button">Personligt</button>
    </div>
  </div>
</div>

jQuery:

$('.btn-group').on('click', function() {
  $(this).parent().toggleClass('fullscreen');
  $(this).parent().siblings().toggleClass('mast1');
  $(this).parent().siblings().fadeOut(250, function() {
    $(this).parent().siblings().css({
      "visibility": "hidden",
      display: 'block'
    });
  });
});

Fiddle for animation

我宁愿没有位置:absolute;,因为它往往会弄乱我页面的其余部分。

【问题讨论】:

    标签: jquery html css animation css-transitions


    【解决方案1】:

    我从你的 js 中删除了这部分

    $(this).parent().siblings().fadeOut(250, function() {
        $(this).parent().siblings().css({
          "visibility": "hidden",
          display: 'block'
        });
      });
    

    我不知道你为什么添加它或者它在做什么?所以你的js在这里:

    $('.btn-group').on('click', function() {
      $(this).parent().toggleClass('fullscreen');
      $(this).parent().siblings().toggleClass('mast1');
    });
    

    并将overflow:hidden 添加到.mast1

    .mast1 {
      width: 0%;
      overflow:hidden;
    }
    

    https://jsfiddle.net/IA7medd/77k8rrrm/4/

    【讨论】:

    • 啊,这确实解决了我的问题。但是我不能在 div 上没有任何填充,可以吗?我该怎么做呢?另外,你这么快就修好了,我有点恼火,哈哈,非常感谢!
    • 不客气。关于您的问题,您的意思是为那些 div ( .rat .emo 和 .per )填充,请告诉我您是否使用引导程序
    • 啊,抱歉,我没有很好地说明我的问题。是的,我指的是 div(.rat、.emo 和 .per),是的,我正在使用引导程序,我也应该在我原来的问题中指定这一点。
    • 在这个小提琴jsfiddle.net/IA7medd/77k8rrrm/5 中,我添加了引导文件并对css .mast1 进行了小编辑。看到它,我希望这是你想要的
    • 这正是我想要的。非常感谢您的帮助和时间,我的问题现在已经解决了。
    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2019-05-06
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    相关资源
    最近更新 更多