【问题标题】:translateX css effect on hovertranslateX css 悬停效果
【发布时间】:2019-04-11 21:54:38
【问题描述】:

我想对一些<h4> 标题应用translateX 效果。我已经测试了代码并且它正在工作,但是在执行效果时我注意到了一个小问题。问题与应用翻译的元素的位置有关,因为我希望效果仅在父 div 悬停时可见。问题是,如果它没有悬停,它也会显示最近的元素。

这是一个代码示例,我使用 bootstrap 4 卡列。

<div class="card-columns">
  <div class="card">
    <div class="overlay">
      <h4 class="title"><a href="#">link1</a></h4>
    </div>
  </div>
  <div class="card">
    <div class="overlay">
      <h4 class="title"><a href="#">link2</a></h4>
    </div>
  </div>
  <div class="card">
    <div class="overlay">
      <h4 class="title"><a href="#">link3</a></h4>
    </div>
  </div>
</div>  

<style>

.overlay{
opacity: 0;
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
right: 0;
background-color: rgba(0,0,0,0.5);
z-index: 1;
}

.card:hover .overlay{
opacity: 1;
}

.title{
transition: all 300ms;
transform: translateX(-200%);
}

.card:hover .title{
transition: all 300ms;
transform: translateX(0%);
}

</style>

Codepen 演示 https://codepen.io/anon/pen/oOWyVK

【问题讨论】:

  • 你能把它加到codepen上吗?
  • @Luca Spezzano 问题已更新

标签: jquery css css-transitions


【解决方案1】:

尝试在覆盖类中添加overflow:hidden;,这样就可以了

.overlay{
  opacity: 0;
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  background-color: rgba(0,0,0,0.5);
  z-index: 1;
  overflow:hidden;
}

这是你需要的吗?

您遇到此问题是因为您正在执行 -200% 的 translateX,因此 title 将开箱即用,您需要使用 overflow:hidden; 隐藏开箱即用的元素 title :)

【讨论】:

  • 我会试试你的建议。我对前端没有太多经验,所以我不知道如何解决这个问题。!
  • 在codepen示例上试过,如果第一个标题悬停,它将继续闪烁。
【解决方案2】:

只需添加overflow: hidden;

.card-columns .card {
    display: inline-block;
    width: 100%;
    overflow: hidden;
}

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 2015-01-01
    • 2015-11-13
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2018-11-25
    相关资源
    最近更新 更多