Библиотека Cash представляет собой облегчённый аналог jQuery, обеспечивающий удобную работу с DOM, событиями, CSS и анимацией. Одной из важных возможностей при работе с современными браузерами является управление vendor-префиксами для CSS-свойств, что позволяет корректно использовать экспериментальные или частично поддерживаемые свойства.
Cash не требует ручного добавления -webkit-,
-moz-, -ms- или других префиксов при работе с
CSS. Все свойства, которые нуждаются в префиксах, можно задавать через
метод .css(). Библиотека автоматически подставляет префиксы
для поддерживаемых браузеров:
import $ from 'cash-dom';
$('#box').css('user-select', 'none');
В этом примере Cash обеспечит добавление необходимых префиксов:
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
Ключевой момент: библиотека опирается на текущую поддержку браузеров и использует внутреннюю карту свойств с префиксами. Это устраняет необходимость вручную проверять, какие префиксы нужны.
CSS-свойства transform, transition и animation особенно часто требуют префиксов в старых версиях браузеров. Cash позволяет безопасно использовать их без опасений:
$('#box').css({
transform: 'rotate(45deg)',
transition: 'transform 0.3s ease-in-out'
});
Cash автоматически генерирует:
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
-webkit-transition: -webkit-transform 0.3s ease-in-out;
transition: transform 0.3s ease-in-out;
Для сложных комбинаций свойств библиотека объединяет префиксы и основное свойство, избегая дублирования кода и конфликтов.
Метод .css() используется не только для установки, но и
для получения значения свойства. Если свойство имеет префиксы, Cash
автоматически возвращает приведённое значение,
игнорируя префиксы, что упрощает логику:
const transformValue = $('#box').css('transform');
console.log(transformValue); // 'rotate(45deg)'
Это позволяет работать с универсальными именами свойств, не заботясь
о различиях между -webkit-transform и
transform.
При работе с анимациями через .animate() префиксы также
учитываются. Например:
$('#box').animate({ transform: 'translateX(100px)' }, 500);
Cash автоматически добавит все необходимые префиксные варианты для корректной работы анимации во всех поддерживаемых браузерах, сохраняя единый интерфейс и единый код анимации.
.css() или .animate(). Прямое
манипулирование element.style потребует ручной
установки..css(), чтобы Cash добавлял префиксы
за один проход.Множественные свойства с префиксами:
$('#box').css({
transform: 'scale(1.2)',
transition: 'transform 0.5s ease',
userSelect: 'none'
});
Возврат значения без префиксов:
const userSelect = $('#box').css('user-select');
console.log(userSelect); // 'none'
Анимация с transform:
$('#box').animate({ transform: 'rotate(90deg)' }, 800);
Cash обеспечивает корректное отображение анимации во всех актуальных браузерах, подставляя нужные префиксы.
Использование vendor-префиксов в Cash упрощает работу с CSS-свойствами, делает код более читаемым и переносимым между браузерами. Библиотека берет на себя заботу о кросс-браузерной совместимости, позволяя концентрироваться на логике интерфейса и анимаций.