Я позиционирую свой элемент внутри контейнера, используя свойство transform: tranxlate(x, y)
css.
Когда я перемещаю элемент вправо или вниз - появляются полосы прокрутки, потому что контейнер имеет overflow: auto;
. Однако, если я перемещаю элемент влево или вверх - очевидно, полосы прокрутки не появляются, потому что переполнение не работает таким образом.
Теперь я ищу какой-то минималистичный c подход с чистым html / js / css чтобы иметь возможность прокручивать контейнер, имея в виду, что внутреннее содержимое может быть перемещено случайным образом в любую сторону.
Короче говоря, я хочу, чтобы полоса прокрутки появлялась, если желтый блок выходит за левый край, так же, как он выглядит когда он идет к правому краю?
Вот пример Codepen , который показывает проблему.
var btns = document.querySelectorAll('button');
var inner = document.querySelector('.inner');
var offset = 0;
btns[0].addEventListener('click', function() {
offset -= 25;
inner.style.transform = `translate(${offset}px, 0px)`;
});
btns[1].addEventListener('click', function() {
offset += 25;
inner.style.transform = `translate(${offset}px, 0px)`;
});
button {
margin: 0 auto;
display: block;
}
.outer {
outline: 1px dashed black;
margin: 0 auto;
width: 200px;
height: 200px;
overflow: auto;
}
.inner {
width: 100px;
height: 100px;
background: yellow;
}
<button>Move Left</button>
<button>Move Right</button>
<div class="outer">
<div class="inner"></div>
</div>