@Artem0071
Безработный mr. Junior

Как двигать курсором поле?

Я совсем запутался различными параметрами

Есть контейнер, и в нем есть поле, которое нужно скроллить(не двигать)
Просто блоки у меня получается делать, но когда пытаюсь настроить скролл, то он либо не двигается, либо сразу улетает в небытие

Я так понял, что нужно запоминать предыдущее значение и отнимать/прибавлять следующее

Но там параметров немеренно и что откуда надо отнимать при условии движения скролла непонятно

Может есть какой то уже готовая какая нибудь функция? Или подскажите что откуда вычитать нужно

пример

Вот "слушаю" события, но не знаю что с ними делать
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Так, что ли?
<div class="app">
  <div class="plain"></div>
</div>

.app {
  width: 200px;
  height: 200px;
  overflow: scroll;
}

.plain {
  width: 1000px;
  height: 1000px;
  background: linear-gradient(135deg, red, blue);
}

let x = null;
let y = null;

document.querySelector('.app').addEventListener('mousemove', function(e) {
  if (e.buttons) {
    if (typeof x === 'number') {
      this.scrollLeft += (x - e.layerX) * 3;
      this.scrollTop += (y - e.layerY) * 3;
    }

    x = e.layerX;
    y = e.layerY;
  } else {
    x = y = null;
  }
});

https://jsfiddle.net/wxfy5h9t/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы