IE9-11 определяет стиль преобразования: preserve-3d

Я сделал 3d-меню для проекта, и, естественно, IE вызывает проблемы, потому что IE10 +, хотя 3d-преобразования работают, не поддерживает стиль transform: preserve-3d. Я попробовал обходные методы, применяя преобразования к каждому дочернему элементу контейнера трехмерного меню, но анимация выглядит, по меньшей мере, ужасно. Решив полностью отказаться от 3d для IE, но без возможности использовать условные таблицы стилей для IE10 +, я попытался определить значение свойства preserve-3d следующим образом:

var detect = document.createElement("div");
detect.style.transformStyle = "preserve-3d";
if (detect.style.transformStyle.length > 0) {
  document.getElementsByTagName("html")[0].className = "preserve3D";
}

Я заметил, что IE9 + возвращает длину 0 в приведенном выше случае, потому что он не понимает значение, оставляя тег HTML в покое. Chrome и FF знают preserve-3d, поэтому класс добавляется. Я мог только проверить это, установив строку пользовательского агента IE11 в IE9 и IE10.

Мой первый вопрос: могу ли я ожидать, что этот метод (тестирование с помощью установки user-agent в IE11) будет отказоустойчивым или мне нужно заполучить реальные IE9 и IE10?

Мой второй вопрос: есть ли недостаток в тестировании на значение вышеуказанным способом? Есть ли более элегантный, лучший, (будущий) безопасный путь? Согласно моим ожиданиям, это должно быть довольно безопасно, когда IE10 + принимает preserve-3d, или я ошибаюсь?

Ответы на вопрос(0)

Ваш ответ на вопрос