Как предотвратить действие по умолчанию для события Mousewheel

0

Я работаю над построением диаграммы d3.js, которая позволит мне прокручивать по оси x, обертывая элемент svg с фиксированной шириной и располагая высоту меньшего div с свойствами переполнения. Эта визуализация строится на платформе, которая обрабатывает данные и предоставляет редактор кода javascript для создания визуализации. После публикации кода гистограмма отображается в элементе html div.

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

$(vizhtmlelement).mousewheel(function() {
    return false;
});

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

  • 1
    Вы ищете event.preventDefault();
Теги:
d3.js

1 ответ

1

На любом элементе вы.call() свою функцию масштабирования, вам необходимо установить его поведение в режиме мыши. Поэтому, если вы.call (увеличить) от или с идентификатором "yourElement", то это будет выглядеть так:

d3.select("#yourElement")
.call(myZoom)
.on("dblclick.zoom", null)
.on("mousewheel.zoom", null)
.on("DOMMouseScroll.zoom",null);

Заметьте, я также отключил двойное нажатие, потому что вы, вероятно, тоже захотите, чтобы это было отключено.

  • 0
    Привет Илия, спасибо за ответ. К сожалению, не имеет контроля над функцией масштабирования. Он уже вызывается по умолчанию на всей странице.
  • 0
    Как это называется в коде?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню