'Blur effect on the bottom side of scrolling container
I want to achieve blur effect on the items at the end of scrollable container.My list is vertical and I want to see the blur effect towards the bottom. but currently there is no blur effect taking in place.
I have this so far:
.main-container {
position: relative;
height: 100px;
}
.main-container .scrollable-nav {
overflow: scroll;
height: 100%;
}
.list-item-container {
list-style: none;
font-size: 20px;
}
li {
padding-right: 30px;
}
.main-container::after {
content: '';
display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 60px;
height: calc(100% - 20px);
right: 0;
position: absolute;
z-index: 9999999;
margin-left: auto;
top: 0;
bottom: 0;
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .7) 5%, #fff 100%);
}
https://jsfiddle.net/n1y57zt9/
any idea/help appreciated!
thanks
Solution 1:[1]
Make the item to have blur effect at the end, apply background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.7) 5%, #fff 100%) to the list(change the parameter a little bit):
code copied from your fiddle and change the background to black since your blur effect (linear-graident is white)
body{
background-color:black;
}
.main-container {
position: relative;
height: 100px;
}
.main-container .scrollable-nav {
overflow: scroll;
height: 100%;
}
.list-item-container {
list-style: none;
font-size: 20px;
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0) 80%, #fff 100%);
}
li {
padding-right: 30px;
}
li:last-child {
}
<div class="main-container">
<div class="scrollable-nav right-bg">
<ul class="list-item-container ">
<li class="m-item">menuItem1</li>
<li class="m-item">menuItem2</li>
<li class="m-item">menuItem3</li>
<li class="m-item">menuItem4</li>
<li class="m-item">menuItem5</li>
<li class="m-item">menuItem6</li>
<li class="m-item">menuItem7</li>
<li class="m-item">menuItem8</li>
</ul>
</div>
</div>
Give that effect only to the last element, use css pseudo selector :last-child
body{
background-color:black;
}
.main-container {
position: relative;
height: 100px;
}
.main-container .scrollable-nav {
overflow: scroll;
height: 100%;
}
.list-item-container {
list-style: none;
font-size: 20px;
}
.list-item-container > .m-item:last-child{
background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.7) 5%, #fff 100%);
}
li {
padding-right: 30px;
}
<div class="main-container">
<div class="scrollable-nav right-bg">
<ul class="list-item-container ">
<li class="m-item">menuItem1</li>
<li class="m-item">menuItem2</li>
<li class="m-item">menuItem3</li>
<li class="m-item">menuItem4</li>
<li class="m-item">menuItem5</li>
<li class="m-item">menuItem6</li>
<li class="m-item">menuItem7</li>
<li class="m-item">menuItem8</li>
</ul>
</div>
</div>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | James |
