2015-11-22 5 views
1

Я использую фантастический плагин svg-pan-zoom (https://github.com/ariutta/svg-pan-zoom) для панорамирования/увеличения моего элемента svg, я хочу включить перетаскивание мышью, чтобы использовать его.Как предотвратить перенаправление svg на определенный элемент?

У меня есть один элемент внутри моего svg, где я хочу предотвратить перетаскивание, потому что он имеет событие щелчка и когда пользователь нажимает на него, иногда он перетаскивает элемент svg. Запрашиваемое поведение заключается в том, чтобы перетаскивать в качестве стандарта, за исключением случаев, когда мышь находится на этом элементе. Я уже пытаюсь с event.stopPropagation() и event.preventDefault(), но кажется, что плагин svg-pan-zoom имеет собственное управление событиями.

Как я могу предотвратить перетаскивание мышью?

ответ

1
  1. Вы можете have 2 layers (если вам не нужно кастрюли/увеличивать этот элемент).

  2. Или вы все равно можете держать все элементы увеличенными, но только some of them listening for events. Просто разместите все, что хотите прослушать события в одном элементе SVG Group <g>, и настройте его для прослушивания событий.

  3. Последнее решение должно быть override default events для перетаскивания и записи собственных обработчиков.

Я бы порекомендовал вариант 1, если вам не нужен элемент для увеличения, или вариант 2 в противном случае.

+0

Я получаю свой SVG от веб-службы, в этом случае я добавляю свой новый элемент, я хочу перетащить/увеличить этот элемент вместе с другими. Второй был бы в порядке, но мне нужно прослушивать все элементы, кроме одного, а не только кого-то, поэтому мне нужен хотя бы элемент фона ... Я решил с 3-м решением и немного взломать оригинальный источник, потому что publicInstance не cointain handleMouseDown(), и мне нужно его перехватить. – Tobia

+0

Вы все еще можете пойти со вторым решением, так как вы можете иметь 2 элемента корня. Элемент 1 будет вашим элементом, которого вы не хотите слушать. Элемент 2 будет группой и будет содержать все остальные элементы (и вы будете слушать этот элемент). – bumbu

+0

Нужен ли мне элемент фона для второго корневого элемента для этого решения? – Tobia

Смежные вопросы