Je me demande donc s'il y a une possibilité d'avoir une position de départ différente avec le overflow:scroll
valeur;
Lorsque vous commencez à faire défiler dans un div
le comportement par défaut est de faire défiler le formulaire de gauche à droite:
|<--Scrollbar-Starting-Left-->_________________________________________________|
serait-il possible que cela commence à droite?
|_________________________________________________<--Scrollbar-Starting-Right-->|
Dans mon exemple les éléments red
et green
sont d'abord visibles, j'aimerais que l'élément green
et blue
soit visible en premier :)
J'ai essayé direction:rtl;
mais pas de chance
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'>
Cela peut être utile en utilisant direction http://css-tricks.com/almanac/properties/d/direction/
Je ne connais aucune solution avec seulement CSS mais vous pouvez utiliser Jquery pour changer la position initiale de la barre de défilement comme ceci:
$(document).ready(function(){
$('#box').scrollLeft($(this).height())
})
Cochez cette ( violon de démonstration
Avec javascript, vous pouvez simplement définir la propriété scrollLeft lorsque la page est chargée (en utilisant el.scrollLeft = el.scrollWidth - el.clientWidth;
).
J'ai travaillé sur un projet et pour moi fonctionne très bien comme ceci:
overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
Il y a un comportement inattendu si vous ajoutez une parenthèse fermante à la fin du texte pour la première réponse. (Testé en 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>
Regardez ce feedle pour le résultat: http://jsfiddle.net/mm37pqxa/
Vous pouvez le faire avec une seule ligne de jQuery:
$("#box").scrollLeft(480);