translateX css 悬停效果
translateX css effect on hover
我想对某些 <h4>
标题应用 translateX
效果。我已经测试了代码并且它正在运行,但是我注意到在执行效果时出现了一个小问题。问题与应用翻译的元素位置有关,因为我希望效果仅在悬停 parent 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
尝试在叠加层中添加 overflow:hidden;
class 这样就可以了
.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
开箱即用:)
只需添加overflow: hidden;
.card-columns .card {
display: inline-block;
width: 100%;
overflow: hidden;
}
我想对某些 <h4>
标题应用 translateX
效果。我已经测试了代码并且它正在运行,但是我注意到在执行效果时出现了一个小问题。问题与应用翻译的元素位置有关,因为我希望效果仅在悬停 parent 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
尝试在叠加层中添加 overflow:hidden;
class 这样就可以了
.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
开箱即用:)
只需添加overflow: hidden;
.card-columns .card {
display: inline-block;
width: 100%;
overflow: hidden;
}