Делал точно такую штуку как на 2 картинке через скролл бар.
Пример
Сначала делал, чтобы на десктопе листали по 1 элементу, потом попросили чтобы как мобильный скролл бар был, через js делал.
А кнопки листают 1 элементу. Ширина элемента высчитываю при загрузке компонента и от этого исхожу.