【发布时间】:2019-08-21 03:46:48
【问题描述】:
我有一个带有子 div 的 flexbox 容器:
.flex-l, .flex-c {
display: flex;
align-items: center;
justify-content: space-between;
}
.flex-l {
justify-content: flex-start;
}
.flex-c {
justify-content: center;
}
.sidebar {
width: 100%;
height: 100vh;
background: rgba(0 ,0 ,0 ,0.05);
}
.selector-bar {
width: 90%;
height: 5vh;
overflow: auto;
}
.selector-bar::-webkit-scrollbar {
display: none;
}
.sidebar-group-img, .sidebar-friend-img {
height: 2.2vw;
width: 2.2vw;
margin: 0.2vw;
flex-shrink: 0;
}
.sidebar-group-img {
background: rgba(46, 204, 113, 0.6);
}
.group-chat-text {
opacity: 0;
transition: 1s;
position: relative;
z-index: 10;
transform: translate(21px);
}
.group-chat-img {
opacity: 1;
transition: 1s;
position: relative;
z-index: 11;
transform: translate(-17px)
}
.sidebar-group-img:hover .group-chat-text {
opacity: 1;
transition: 0.2s;
}
.sidebar-group-img:hover .group-chat-img {
opacity: 0.25;
transition: 0.2s;
}
<div class="flex-l selector-bar">
<div class="flex-c sidebar-group-img">
<h4 class="group-chat-text">Chat</h4>
<img class="group-chat-img" src="./img/logo-1.jpg" alt="Group Logo">
</div>
<div class="flex-c sidebar-group-img">
<h4 class="group-chat-text">Chat</h4>
<img class="group-chat-img" src="./img/logo-2.jpg" alt="Group Logo">
</div>
<div class="flex-c sidebar-group-img">
<h4 class="group-chat-text">Chat</h4>
<img class="group-chat-img" src="./img/logo-3.jpg" alt="Group Logo">
</div>
<div class="flex-c sidebar-group-img">
<h4 class="group-chat-text">Chat</h4>
<img class="group-chat-img" src="./img/logo-4.png" alt="Group Logo">
</div>
<div class="flex-c sidebar-group-img">
<h4 class="group-chat-text">Chat</h4>
<img class="group-chat-img" src="./img/logo-5.jpg" alt="Group Logo">
</div>
</div>
我想为selector-bar 容器添加一个淡入淡出效果,如下所示:
https://codepen.io/timothylong/pen/RodjKW
问题是我的容器背景是透明的,所以我不能简单地使用linear-gradient。我试过了,但我想不出一种不降低不透明度的方法。
我也看过这个: https://codepen.io/annalarson/pen/GesqK 我也不希望这样,因为我希望在没有用户交互的情况下直观地看到渐变。
我能看到实现这一点的唯一方法是定位子元素本身,并在它们靠近容器边缘时让它们褪色。不过,我无法理解 JS。
我也在使用香草 JS。不是 jQuery。
这可能吗?
【问题讨论】:
标签: javascript html css opacity fade