Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Event тега object после подгрузки svg контента внутри него (https://javascript.ru/forum/events/53217-event-tega-object-posle-podgruzki-svg-kontenta-vnutri-nego.html)

Wahlberg 25.01.2015 15:12

Event тега object после подгрузки svg контента внутри него
 
Добрый день.

Цель: заставить сделать редирект на главную по нажатию на лого

Проблема: Лого подаётся в виде SVG анимационного элемента вставленного через тег object, который создаёт в своём контенте тело, который на прочь блокирует ивенты из основного тела.

Сверху поставить ничего нельзя, иначе анимации не пройдёт.
Теги href, onclick и прочие ивенты умирают когда мышка заходит в область объекта. Единственные таучи которые есть это вход и выход на элемент.
Внутри элемента таучи образуют под страницу.

Для чего нужен объект object - что бы была svg анимация

http://194.58.46.24/master

danik.js 25.01.2015 17:43

В HTML5 можно встраивать svg прям в HTML. Это решит твою проблему.
Правда, вроде бы не все браузеры, поддерживающие SVG, поддерживают SVG в HTML. Смотри caniuse.com

SV0L0CH 25.01.2015 18:47

Я вот только не понял, анимация сделана через JS или атрибуты анимации?
Какие особенности наблюдаются в случае <iframe/> и непосредственного включения?

danik.js 25.01.2015 19:43

Встроить ссылку в SVG - не вариант? Не прокатит вариант с xlink:href="/" xlink:target="_top" или что-то вроде этого?

Wahlberg 26.01.2015 07:54

Цитата:

Сообщение от SV0L0CH (Сообщение 353410)
Я вот только не понял, анимация сделана через JS или атрибуты анимации?
Какие особенности наблюдаются в случае <iframe/> и непосредственного включения?

Анимации сделана на Pure SVG.
Попробую как с работы вернусь, но думаю эффект будет такой же, как и в случае с тем как работает сейчас.

Wahlberg 26.01.2015 07:54

Цитата:

Сообщение от danik.js (Сообщение 353413)
Встроить ссылку в SVG - не вариант? Не прокатит вариант с xlink:href="/" xlink:target="_top" или что-то вроде этого?

Нет, не вариант, он конфигурирует непосредственно в размерах SVG новую картинку.

SV0L0CH 26.01.2015 11:57

<object/> задействует внешний плагин, а при непосредственной вставке используется встроенный рендеринг. Но тут возможна ситуация когда встроенный анимацию умет, а плагин не умеет. Так что во всех случаях ничего не гарантировано.
Варианты:
1. Предоставить браузеру решать будет анимация или не будет.
2. Найти JS библиотеку реализующую анимацию.
3. Конвертировать в gif и делать подмену в зависимости от поддержки анимации.
4. Конвертировать в gif и забыть про svg.

danik.js 26.01.2015 15:37

Цитата:

Сообщение от Wahlberg
Нет, не вариант, он конфигурирует непосредственно в размерах SVG новую картинку.

Не понял ниче :) Что ты имеешь ввиду.

Цитата:

Сообщение от SV0L0CH
<object/> задействует внешний плагин, а при непосредственной вставке используется встроенный рендеринг

Ты бред несешь. Какой еще внешний плагин для SVG?

<object> и <iframe> являются своего рода контейнерами, все события остаются внутри них. Разницы между object и iframe почти нет.

Варианта два:
1) Встроить ссылку внутрь SVG (возможно сработает предложенный мной вариант относительной ссылки)
2) Встроить SVG непосредственно в HTML (тогда вообще простор для манипуляций).

SV0L0CH 26.01.2015 19:38

Цитата:

Сообщение от danik.js (Сообщение 353537)
Ты бред несешь. Какой еще внешний плагин для SVG?

Точно! Это не <object/>, это <embed/>. Я их есчё со времён IE6 комбинировал, потому и путаю :agree:


Часовой пояс GMT +3, время: 20:24.