Я просто возился с этим модернизмом, чтобы узнать, как они проверяют, поддерживается ли определенное свойство CSS в браузере пользователя, в основном я просто хотел иметь небольшой скрипт, который сказал мне, браузер пользователя поддерживает переходы CSS. Я отведенной код Modernizr к чему-то, как показано ниже:Функция обнаружения для свойства перехода CSS3
Elem = document.createElement('Alx');
eStyle = Elem.style;
var cssProp = (function check(){
props = ["transition", "WebkitTransition", "MozTransition", "OTransition", "msTransition"];
for(var i in props) {
var prop = props[i];
console.log(prop);
if (!contains('-' , prop) && eStyle[prop] !== undefined) {
return prop;
}
}
})();
/* The contains function */
function contains(str, substr) {
return !!~('' + str).indexOf(substr);
}
Modernizr делает почти то же самое, я только что сделал несколько изменений и жестко закодированы значения массива, чтобы упростить вещи. Скрипт работает следующим образом.
Создать элемент html (не обязательно должен быть действительным элементом html).
выполнить IIFE, который в основном проходит через все возможные версии браузера css, а также стандартный вариант W3C. проверьте, может ли свойство thing быть применено к элементу html, который мы создали, если он не может быть применен, условие
if
не выполняется и не определеноЕсли условие if прошло, возвращается правильное свойство css-3 и хранится в cssProps.
Я просто хотел знать, является ли это пуленепробивным способом проверки того, какой переход поддерживается в браузере пользователя? или если его поддержка вообще?
Это действительно моя первая попытка обнаружения функции браузера, и поэтому я хотел бы знать.
Я не понимаю, почему вы не просто используете modernizr. Вы можете создать пользовательскую сборку, которая будет очень маленькой, и вам не придется беспокоиться о том, что вы сделали все правильно.Как бы то ни было, вы просите нас проверить код, который вы взломали из другого места, - если вы хотите узнать, работает ли он, тогда проверьте его самостоятельно. –
Вы можете прокрутить собственный модернизатор, чтобы проверить конкретные вещи, например, просто переходы CSS3. Перейдите на страницу [download page] (http://modernizr.com/download/) и установите флажок только для перехода к CSS-переходу, а затем нажмите генерировать – zgood
@torazaburo прямо вправо, но моя цель - научиться кодировать себя, а не просто использовать библиотеки, да, я прошу вас проверить мой код, но это не единственное, о чем я спрашиваю, и, наконец, каждый программист js, который кодов для Интернета, в какой-то момент хотел бы знать, как все работает внутри библиотеки. ваше решение использовать «использовать пользовательскую сборку» является хорошим, эффективным и определенным временем сбережения ... но «это не то, что я хочу, а определенно не подходит для каждого варианта использования». Надеюсь, я сделал оба намерения и четко сформулировал. спросите меня, есть ли у вас дополнительные трудности в понимании. –