如何使一个div完全将另一个div推离屏幕?

gdx19jrr  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(392)

我有8个flexbox分区(2列,4行),当我按下分区内的一个按钮时,它会设置动画并将另一个分区推离屏幕,同时它会在屏幕上展开?
目前,我已经能够完全扩展div并隐藏另一个看起来正常的(我之所以隐藏它是因为它在屏幕左侧的宽度大约为5px,但我已经为此工作了一整天,只需要看看它是如何完成的!
css:

.col2 {
   flex: 1;
   height: 300px;
   margin: 5px;
   border:1px solid black;
   z-index: 1;
   text-align: right;
}

.flex-grid {
   display: flex;
}

html

<div class="flex-grid">
  <div class="col2" id="box1"></div>
  <div class="col2" id="box2"></div>
</div>

尝试了很多不同的jquery动画,但如果它将其从屏幕上移开,它似乎不会移动,甚至尝试使用一个push和expand类来实现css。
真的很挣扎,所以非常感谢您的帮助(如果您想让我展示我用来获得隐藏左侧元素并扩展右侧元素的子级解决方案的jquery,请告诉我)

gajydyqb

gajydyqb1#

.col2 {
   flex: 1;
   height: 300px;
   margin: 5px;
   border:1px solid black;
   z-index: 1;
   text-align: right;

}

.flex-grid {
   display: flex;
}

# box1:hover {

  animation: 1s forwards;
  background-color: red;
  animation-name: example;
}

@keyframes example {
  from {min-width: 0;}
  to {min-width: 99vw}
}
<div class="flex-grid">
  <div class="col2" id="box1"></div>
  <div class="col2" id="box2"></div>
</div>

您需要将动画添加到给定项(或通用项),即。


# box1:hover {

  background-color: red;
  animation-name: example;
  animation-duration: 2s;
}

@keyframes example {
  from {min-width: 0;}
  to {min-width: 100vw}
}
mo49yndu

mo49yndu2#

修改@joelbonter的答案以使用jquery,您可以使用mouseover和mouseleave事件捕获悬停事件。

$('.col2').on('mouseover', function(){
  $(this).css({
    'animation': '1s forwards',
    'background-color': 'red',
    'animation-name': 'example'
  });
  //hide other divs
  $(this).siblings().fadeOut();
});

$('.col2').on('mouseleave', function(){
  $(this).css({
    'animation-name': 'none',
    'background-color': 'white'
  });
  //show other divs
  $(this).siblings().fadeIn();
});
.col2 {
   flex: 1;
   height: 300px;
   margin: 5px;
   border:1px solid black;
   z-index: 1;
   text-align: right;

}

.flex-grid {
   display: flex;
}

@keyframes example {
  from {min-width: 0;}
  to {min-width: 99vw}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="flex-grid">
  <div class="col2" id="box1"></div>
  <div class="col2" id="box2"></div>
</div>

相关问题