есть ли способы вызвать событие прокрутки, например, щелкнуть между большим пальцем на полосе прокрутки и кнопкой?

#javascript #html #css

Вопрос:

Привязка прокрутки удивительна, и после некоторого эксперимента у меня есть определенные сомнения.

Я обнаружил, что, хотя это хорошо работает для небольших видовых экранов. Когда у вас есть большая прокручиваемая область и вы щелкаете элемент в начале. Если вы находитесь в конце ширины прокрутки, а крайняя левая карта немного не видна. Прокрутка одной карты влево (нажатие кнопки prev) приведет к удалению на две карты. Это нормально, и это не проблема.

Самое забавное, что если вы нажмете между большим пальцем полосы прокрутки и левой кнопкой, она фактически переключится на начало ближайшей карты.

Вопрос в том, есть ли простой способ вызвать это собственное событие прокрутки (щелчок между большим пальцем и кнопкой).

вот изображение, чтобы было ясно: введите описание изображения здесь

Ответ №1:

Хорошо, для тех, кому интересно, имя метода, эквивалентное этому, — scrollBy.

Поэтому в моем случае мне нужно сделать:

 nextClickHandler() {
  const el = document.getElementById(myElId);
  el.scrollBy({
    top: 0,
    left: 1, //-1 if you want to go previous 
             //and it will snap to the element that is the closest to the edge.
    behavior: 'smooth'
  });
}
 

вместо :

 nextClickHandler() {
  const el = document.getElementById(myElId);
  el.scrollTo({
    top: 0,
    left: el.scrollLeft cardWidth,
    behavior: 'smooth'
  });
}