Как определить, доступна ли SVG-анимация?

Есть ли хороший способ определить, доступна ли SVG-анимация, и затем соответствующим образом настроить DOM?

Я использую animateMotion для анимации движения g, содержащего image s. Это работает только в Mozilla; еще хуже то, что при запуске animateMotion изображения остаются в разных местах как в Mozilla, так и в WebKit (но не в одном и том же месте в каждом!) .

Похоже, мне нужен способ настроить свойства g и images для каждого сценария и добавить animateMotion пометить, только если это будет работать. Есть предложения?

4 голоса | спросил Marcin 10 AMpSun, 10 Apr 2011 08:21:23 +040021Sunday 2011, 08:21:23

3 ответа


0

Modernizr обнаруживает только наличие элементов высокого уровня и доверяет браузеру не лгать. Например, у настольного Safari есть большое «Да» для SMIL от Modernizr. Но SMIL только частично реализован практически во всех браузерах (даже в Firefox 4!), И вам нужно протестировать анимацию каждого отдельного атрибута, чтобы точно определить, какой из них работает или нет.

Например, вы не можете анимировать startOffset для текста на анимации пути в Desktop Safari с помощью SMIL. Нет библиотеки, которая бы обнаруживала существование функций для подобных вещей.

ИМХО, там, где они существуют, вы должны использовать CSS-трансформации /анимации для анимации общего назначения на всем, кроме IE. Для IE используйте анимацию Javascript (или Canvas).

(Кстати, animateTransform в Chrome не работает - он неправильно рассчитывает переводы)

ответил Michael Mullany 11 PMpMon, 11 Apr 2011 23:06:13 +040006Monday 2011, 23:06:13
0

У меня только что была эта проблема с телефоном Samsung под управлением Android 4.2.2. Он сообщал бы true для всех трех из них: Modernizr.svg, Modernizr.svgclippaths, Modernizr.smil, но без анимации и путей клипов, где произошла ошибка. Похоже, что только один элемент может иметь путь клипа. В любом случае, мы закончили с этим не очень хорошим разрешением:

isAndroid = /Android/.test( navigator.userAgent );

Извините, пользователи Android, вы увидите только резервную копию. Это ужасное исправление, но это было только для простой анимации логотипа, так что ...

ответил Jase 2 Maypm14 2014, 19:53:58
0

Modernizr обнаруживает поддержку анимации SVG (SMIL).

Без полного примера невозможно точно сказать, что является причиной различий.

ответил Erik Dahlström 10 PMpSun, 10 Apr 2011 14:54:56 +040054Sunday 2011, 14:54:56

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132