Я работаю над построением диаграммы d3.js, которая позволит мне прокручивать по оси x, обертывая элемент svg с фиксированной шириной и располагая высоту меньшего div с свойствами переполнения. Эта визуализация строится на платформе, которая обрабатывает данные и предоставляет редактор кода javascript для создания визуализации. После публикации кода гистограмма отображается в элементе html div.
Страница, на которой отображается отображаемая гистограмма, имеет событие масштабирования по умолчанию, которое срабатывает при использовании колеса мыши. Поскольку я хотел бы прокручивать в своей гистограмме с помощью мыши, я пытаюсь остановить действие масштабирования по умолчанию от включения, включив в код следующий оператор:
$(vizhtmlelement).mousewheel(function() {
return false;
});
Это успешно работает при удалении функциональности масштабирования, но также предотвращает работу прокрутки с помощью мыши. Есть ли способ, которым я могу остановить масштабирование колесика мыши, если вы держите прокрутку мыши в моей визуализации?
На любом элементе вы.call() свою функцию масштабирования, вам необходимо установить его поведение в режиме мыши. Поэтому, если вы.call (увеличить) от или с идентификатором "yourElement", то это будет выглядеть так:
d3.select("#yourElement")
.call(myZoom)
.on("dblclick.zoom", null)
.on("mousewheel.zoom", null)
.on("DOMMouseScroll.zoom",null);
Заметьте, я также отключил двойное нажатие, потому что вы, вероятно, тоже захотите, чтобы это было отключено.
event.preventDefault();