Bliss.js — это компактная библиотека для работы с DOM в JavaScript, которая сочетает простоту использования с мощными возможностями для манипуляции элементами, событиями и атрибутами. Одним из ключевых аспектов её применения является поддержка различных браузеров, что позволяет создавать кросс-браузерные решения без необходимости самостоятельно учитывать различия в API.
Одной из главных проблем при работе с DOM является различная реализация стандартов в разных браузерах. Bliss.js скрывает эти различия за единым интерфейсом, предоставляя унифицированные методы для доступа к элементам и их свойствам. Например:
$ и
$$ работает одинаково в Chrome, Firefox, Safari и
Edge.addClass,
removeClass, hasClass,
toggleClass) использует современные методы
classList, но при этом корректно работает в старых
браузерах, где classList отсутствует.attr, prop) абстрагирует различия между
getAttribute и прямым доступом к свойствам элементов.Bliss.js реализует систему событий с учётом различий между
стандартным W3C Event и устаревшим Internet Explorer. Методы
on, off, once позволяют:
event.target,
event.preventDefault(),
event.stopPropagation()).Пример работы с событиями:
$('button').on('click', event => {
console.log('Кнопка нажата:', event.target);
});
Даже в старых версиях IE event.target будет корректно
доступен благодаря внутренней нормализации Bliss.js.
Bliss.js предоставляет метод fetch и вспомогательные
функции для работы с AJAX, учитывая особенности XMLHttpRequest в разных
браузерах. Библиотека автоматически:
XMLHttpRequest для старых браузеров.fetch и промисы там, где это
возможно.Пример запроса:
$.fetch('/api/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Bliss.js оптимизирована для работы на мобильных устройствах:
touchstart, touchend) и предотвращают
конфликт с мышиными событиями.width,
height) корректно учитывает особенности мобильных движков,
включая масштабирование и плотность пикселей.fadeIn, fadeOut,
slideUp, slideDown используют CSS transitions
с полифиллами там, где старые браузеры не поддерживают стандарт.Bliss.js использует современные методы браузеров, но предоставляет встроенные полифиллы для:
classList (IE < 10)addEventListener (старые версии IE)CustomEvent и Event (старые браузеры)Это позволяет писать код, используя новые стандарты, без необходимости самостоятельно проверять поддержку.
attr,
prop, css).value, checked,
selected во всех поддерживаемых браузерах.setTimeout или requestAnimationFrame для
обеспечения совместимости.Bliss.js позволяет:
Благодаря этим особенностям библиотека становится надёжным инструментом для кросс-браузерного JavaScript-разработчика, объединяя простоту синтаксиса и широкую совместимость.