Если я правильно понял, то в принципе, сюда можно прикрутить , решение которое я давал
на похожий вопрос. Только заменить
scrollTop на
scrollLeftПример в песочницеUPD jsfiddle.net/27mz45L2/1var elH = horizontal.offsetHeight,
elTop = horizontal.offsetTop,
winH = window.innerHeight,
factor = horizontal.scrollWidth / (elH * 2 + winH);
window.addEventListener('scroll', function (e) {
var elPosTop = horizontal.getBoundingClientRect().top + elH,
elPosBot = horizontal.getBoundingClientRect().bottom - elH;
if ((elPosTop >= 0) && (elPosBot <= winH)) {
var dE = document.documentElement,
top = (this.pageYOffset || dE.scrollTop) - (dE.clientTop || 0);
horizontal.scrollLeft = Math.abs(elTop - winH - top) * factor;
}
}, false);