Прокрутка по горизонтали, начинающаяся справа налево с переполнением CSS: прокрутка

Так что мне интересно, есть ли возможность иметь другую начальную позицию со значением overflow:scroll;

При запуске прокрутки в div поведение по умолчанию - это прокрутка формы слева направо:

|<--Scrollbar-Starting-Left-->_________________________________________________|

возможно ли, что он начинается справа?

|_________________________________________________<--Scrollbar-Starting-Right-->|

В моем примере сначала отображаются элементы red и green, мне бы хотелось, чтобы green и blue элемент должен быть видимым первым:)

Я пробовал direction:rtl;, но не повезло

Ответ 1

Конечно, вы можете использовать direction:rtl

document.querySelector('input').addEventListener('input', function(){
  document.querySelector('.box').scrollLeft = this.value;
})
.box{
  width: 320px;
  height: 100px;
  border:1px solid red;
  overflow: scroll;
  direction: rtl;  /* <-- the trick */
}

.box::before{ content:''; display:block; width:400%; height:1px; }
<div class='box'></div>
<br>
<input placeholder='scrollLeft value'>

Ответ 2

Я не знаю о каком-либо решении только с CSS, но вы можете использовать JQuery для изменения начального положения полосы прокрутки следующим образом:

$(document).ready(function(){
    $('#box').scrollLeft($(this).height())
})

Проверьте Демо-скрипт

Ответ 3

С помощью javascript вы можете просто установить свойство scrollLeft при загрузке страницы (используя el.scrollLeft = el.scrollWidth - el.clientWidth;).

Ответ 4

Я работаю над проектом, и для меня это очень хорошо работает:

overflow-x: scroll;   
overflow-y: hidden;   
white-space: nowrap;

Ответ 5

Существует неожиданное поведение, если вы добавляете закрывающую скобку в конце текста для верхнего ответа. (Протестировано в Chrome 54)

<div id="box">
    <div id="inner_box">
        <div class="item" style="background:red;"></div>
        <div class="item" style="background:green;"></div>
        <div class="item" style="background:blue;">te(st)</div>
    </div>
</div>

Смотрите этот результат для результата: http://jsfiddle.net/mm37pqxa/

Ответ 6

Вы можете сделать это с помощью одной строки jQuery:

$("#box").scrollLeft(480);