mo.js распространяется как отдельный JavaScript-файл, который может быть подключён через CDN или установлен через пакетный менеджер (npm, yarn). При работе в современном окружении чаще используется модульная система:
npm install @mojs/core
Подключение в коде:
import mojs from '@mojs/core';
Для классического подхода — через <script>:
<script src="https://cdn.jsdelivr.net/npm/@mojs/core"></script>
После подключения глобальный объект mojs становится
доступен для создания анимаций.
Работа с анимацией требует постоянного контроля производительности и поведения элементов. Основные инструменты браузера:
Позволяет отслеживать изменения DOM, которые происходят в процессе анимации. mo.js часто создаёт SVG-элементы динамически, поэтому важно:
transform)Используется для:
Пример отладки:
const burst = new mojs.Burst({
radius: { 0: 100 }
});
console.log(burst);
Ключевой инструмент для анализа:
Особенно важно при сложных сценах с большим количеством частиц.
mo.js предоставляет мощный инструмент управления анимациями —
Timeline.
const timeline = new mojs.Timeline();
timeline.add(
new mojs.Tween({ duration: 1000 }),
new mojs.Burst({ radius: { 0: 100 } })
);
timeline.play();
Инструменты разработчика помогают:
duration)Полезный приём — логирование состояния:
timeline._props; // внутренние параметры
В DevTools можно установить breakpoint прямо в коде:
Это позволяет:
mo.js активно использует SVG, поэтому важно понимать:
Инструменты:
<svg> в DOMviewBoxpath, stroke,
fillВо время разработки удобно менять параметры “на лету”:
burst.tune({
radius: { 0: 200 },
duration: 2000
});
Метод tune() позволяет:
mo.js поддерживает callbacks:
new mojs.Tween({
duration: 1000,
onStart() {
console.log('Старт');
},
onUpdate(progress) {
console.log(progress);
},
onComplete() {
console.log('Завершено');
}
});
Это даёт возможность:
Критические моменты:
count)Рекомендации:
Пример оптимизации:
const burst = new mojs.Burst({
count: 5, // уменьшено
radius: { 0: 50 },
duration: 500
});
mo.js сам управляет анимацией через
requestAnimationFrame, но при интеграции с пользовательским
кодом важно:
Пример:
function loop() {
// пользовательская логика
requestAnimationFrame(loop);
}
loop();
Используются для:
Пример конфигурации (Vite):
export default {
optimizeDeps: {
include: ['@mojs/core']
}
};
Позволяет использовать современный синтаксис Jav * aScript:
npm install @babel/core @babel/preset-env
mo.js можно использовать вместе с:
Пример для React:
useEffect(() => {
const burst = new mojs.Burst({
radius: { 0: 100 }
});
burst.play();
}, []);
Инструменты разработчика помогают:
Типичные проблемы:
{0: '100px'} вместо
числа)Методы диагностики:
mo.js предоставляет множество easing-функций:
easing: 'cubic.out'
Для анализа:
Вкладка Memory позволяет:
Особенно важно при:
Рекомендуется:
Пример:
export function createBurst() {
return new mojs.Burst({
radius: { 0: 100 }
});
}
Для повышения надёжности:
npm install typescript
Типизация помогает:
Для разработки анимаций полезны:
mo.js-объекты можно комбинировать:
const circle = new mojs.Shape({
shape: 'circle',
radius: { 0: 50 }
});
const rect = new mojs.Shape({
shape: 'rect',
radius: { 0: 50 }
});
const timeline = new mojs.Timeline().add(circle, rect);
Это позволяет:
При использовании современных сборщиков:
Подход:
Понимание структуры:
Это помогает: