сегодня в 18:33
Mobyfy.js — открытая библиотека предназначенная прежде всего для облегчения создания отзывчивых (responsible) сайтов. Основная фишка состоит в так называемом «Capturing API» — позволяющем модифицировать DOM непосредственно ДО начала загрузки ресурсов (скриптов, изображений и т.д.)
Вот пример работы с отзывчивыми изображениями:
Файл «small.jpg» не будет загружен на клиенте с большим экраном, вместо него загрузится то, что будет соответствовать медиа-критерию (можете проверить в веб-инспекторе на закладке «сеть»).
Принцип работы довольно интересен: на странице в начало тега HEAD вставляется скрипт, временно оборачивающий содержимое BODY в тег PLAINTEXT — это предотавращает загрузку рессурсов. Далее выполняется наш код, манипуляции с DOM, ну а в конце BODY восстанавливается.
Официальный сайт, интересное обсуждение на сайте мозилы — в комментариях есть разъяснение технологии.
Вот пример работы с отзывчивыми изображениями:
<picture>
<source src="/examples/assets/images/small.jpg">
<source src="/examples/assets/images/medium.jpg" media="(min-width: 450px)">
<source src="/examples/assets/images/large.jpg" media="(min-width: 800px)">
<source src="/examples/assets/images/extralarge.jpg" media="(min-width: 1000px)">
<img src="/examples/assets/images/small.jpg">
</picture>
Файл «small.jpg» не будет загружен на клиенте с большим экраном, вместо него загрузится то, что будет соответствовать медиа-критерию (можете проверить в веб-инспекторе на закладке «сеть»).
Пример кода, подменяющий все изображения на странице:
Развернуть код
<script id="main-executable" class="mobify">
var main = function () {
var capturing = window.Mobify && window.Mobify.capturing || false;
if (capturing) {
// Grab reference to a newly created document
Mobify.Capture.init(function(capture){
var capturedDoc = capture.capturedDoc;
var grumpyUrl = "/mobifyjs/examples/assets/images/grumpycat.jpg"
var imgs = capturedDoc.getElementsByTagName("img");
for(var i = 0; i < imgs.length; i++) {
var img = imgs[i];
var ogImage = img.getAttribute("x-src");
img.setAttribute("x-src", grumpyUrl);
img.setAttribute("old-src", ogImage);
}
// Render source DOM to document
capture.renderCapturedDoc();
});
}
}; main();
</script>
Принцип работы довольно интересен: на странице в начало тега HEAD вставляется скрипт, временно оборачивающий содержимое BODY в тег PLAINTEXT — это предотавращает загрузку рессурсов. Далее выполняется наш код, манипуляции с DOM, ну а в конце BODY восстанавливается.
Поддержка браузерами:
- Webkit (Safari, Chrome, etc) — все версии
- Firefox 4.0+
- Opera 11.0+
- Internet Explorer 10+
Официальный сайт, интересное обсуждение на сайте мозилы — в комментариях есть разъяснение технологии.
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:
- Massacres That Matter - Part 1 - 'Responsibility To Protect' In Egypt, Libya And Syria
- Massacres That Matter - Part 2 - The Media Response On Egypt, Libya And Syria
- National demonstration: No attack on Syria - Saturday 31 August, 12 noon, Temple Place, London, UK
Комментариев нет:
Отправить комментарий