У меня есть скроллер, где я добавляю пробел в начале (перед первым элементом) и в конце (после последнего элемента) для имитации полей.
Я пытаюсь добавить эффект затухания вуказанное расстояние.Обратите внимание, что я мог бы просто использовать заполнение, чтобы не было видно элементов, выходящих из скроллера.Но моя цель состоит именно в том, чтобы позволить им переполниться, просто с плавным эффектом затухания, чтобы улучшить внешний вид скроллера внутри страницы.
Проблема в том, что в настоящее время мои эффекты затухания перемещаются вместе сэлементы в скроллере (я сделал их красными, чтобы сделать их более заметными) (см. ниже).
Но Я бы хотел, чтобы они оставались фиксированными с помощью скроллера, , чтобы онипокройте элементы, которые выходят за пределы пространства внутри скроллера.
РЕДАКТИРОВАТЬ: Более того, я бы предпочел не вводить больше элементов HTML.
Спасибо за помощь.
.scroller::before {
left: 0;
transform: rotate(180deg);
}
.scroller::after {
right: 0;
}
.scroller::before,
.scroller::after {
content: "";
position: absolute;
width: 100px;
height: 100%;
background-image: linear-gradient(to left, red 50%, transparent); /* I set it red for the demo */
}
.scroller {
position: relative;
width: 100%;
max-width: 1000px; /* for demonstration purpose, limit the size of scroller so that it scrolls with 5 cards inside */
height: 230px;
overflow-x: auto;
overflow-y: hidden;
background-color: #DEDEDE;
display: flex;
}
.scroller > :first-child {
margin-left: 100px !important; /* yeah... */
}
.scroller > :last-child {
position: relative;
}
.scroller > :last-child::after {
content: "";
position: absolute;
right: -100px;
width: 1px;
height: 1px;
visibility: hidden;
}
.scroller > .card {
flex-shrink: 0;
width: 260px;
height: calc(100% - 2 * 15px);
margin: 15px;
background-color: white;
}
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
box-sizing: border-box;
background-color: #323235;
}
<div class="scroller">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>