У меня есть несколько div, расположенных абсолютно внутри его родителя. Родитель переполняет экран и может быть прокручен.Изменить положение сверху/слева от детей независимо от родительского прокрутки. Позиция точки
При щелчке эти разделители должны располагаться на высоте экрана (как если бы они фиксировали положение). Таким образом, каждому div присваивается определенная ширина и высота и верхнее значение. Проблема в том, что это работает только так, как ожидается, если родительский элемент не прокручивается (scrollTop = 0).
Я хочу, чтобы это было сделано плавно с переходами CSS. Я могу назначить верхнее значение, относящееся к позиции прокрутки родителя в момент щелчка. Но Я ищу способ CSS для этого. Я думал об изменении положения, зафиксированного в div, но это не переход.
Есть ли способ заставить его работать используя CSS?
Редактировать: Я спрашиваю, есть ли у кого-нибудь предложение о том, как достичь этого, используя CSS, или подумали о том, как подойти к нему по-другому.
Edit2: Это GIF включает в себя только изменение положения (ширина или высота не меняется), как она есть, где я имею вопрос. Это и есть искомое решение:
var $container = $('#container');
var $elements = $container.find('.element');
$container
.height(function() {
return ($elements.eq(-1).position().top - $elements.eq(0).position().top + $elements.eq(0).outerHeight());
})
.on('click', function() {
$elements.add($container).toggleClass('on');
});
#container {
width: 100%;
background: grey;
position: absolute;
}
.element {
border: 1px solid black;
position: absolute;
width: 100px;
height: 100px;
background: white;
left: 100px;
transition: all 1s ease;
}
.element:nth-child(2) {
top: 130px;
}
.element:nth-child(3) {
top: 340px;
}
.element:nth-child(4) {
top: 550px;
}
.element:nth-child(5) {
top: 660px;
}
.on.element {
left: 0;
height: 20vh;
width: 20vh;
}
.on.element:nth-child(2) {
top: 20vh;
}
.on.element:nth-child(3) {
top: 40vh;
}
.on.element:nth-child(4) {
top: 60vh;
}
.on.element:nth-child(5) {
top: 80vh;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
Что не должен работать на 'scrollTop = 0' –
Он только смотрит правильно на scrollTop = 0. Пусть мне add gif – Alvaro
Сообщите мне, если GIF не ясен. – Alvaro