Mediawiki:common.js
| Строка 1764: | Строка 1764: | ||
loaded: false, | loaded: false, | ||
loading: false, | loading: false, | ||
callbacks: [], | |||
init: function() { | init: function() { | ||
| Строка 1790: | Строка 1791: | ||
'transition: all 0.3s;'; | 'transition: all 0.3s;'; | ||
var self = this; | |||
button.addEventListener('mouseenter', function() { | button.addEventListener('mouseenter', function() { | ||
this.style.transform = 'scale(1.05)'; | this.style.transform = 'scale(1.05)'; | ||
| Строка 1801: | Строка 1803: | ||
button.addEventListener('click', function() { | button.addEventListener('click', function() { | ||
self.toggleFireworks(); | |||
}); | }); | ||
| Строка 1808: | Строка 1810: | ||
loadFireworks: function(callback) { | loadFireworks: function(callback) { | ||
if (this.loaded && window.Fireworks) { | // Проверяем разные варианты экспорта библиотеки | ||
if (this.loaded && (window.Fireworks || (window.Fireworks && window.Fireworks.default))) { | |||
if (callback) callback(); | if (callback) callback(); | ||
return; | return; | ||
| Строка 1814: | Строка 1817: | ||
if (callback) { | if (callback) { | ||
this.callbacks.push(callback); | this.callbacks.push(callback); | ||
} | } | ||
| Строка 1823: | Строка 1825: | ||
var self = this; | var self = this; | ||
// Загружаем библиотеку fireworks.js | // Загружаем библиотеку fireworks.js через UMD версию | ||
var script = document.createElement('script'); | var script = document.createElement('script'); | ||
script.src = 'https://unpkg.com/fireworks-js@2/dist/index.umd.js'; | |||
script.src = 'https:// | |||
script.onload = function() { | script.onload = function() { | ||
self.loaded = true; | self.loaded = true; | ||
self.loading = false; | self.loading = false; | ||
// Вызываем все колбэки | |||
self.callbacks.forEach(function(cb) { cb(); }); | |||
self.callbacks = []; | |||
}; | }; | ||
script.onerror = function() { | script.onerror = function() { | ||
console.error('Ошибка загрузки fireworks.js'); | console.error('Ошибка загрузки fireworks.js'); | ||
self.loading = false; | self.loading = false; | ||
self.callbacks = []; | |||
}; | }; | ||
| Строка 1883: | Строка 1882: | ||
} | } | ||
} | } | ||
}, | |||
getFireworksConstructor: function() { | |||
// Пробуем разные варианты доступа к конструктору | |||
if (window.Fireworks && typeof window.Fireworks === 'function') { | |||
return window.Fireworks; | |||
} | |||
if (window.Fireworks && window.Fireworks.default && typeof window.Fireworks.default === 'function') { | |||
return window.Fireworks.default; | |||
} | |||
if (window.fireworks && typeof window.fireworks === 'function') { | |||
return window.fireworks; | |||
} | |||
// Если библиотека экспортируется по-другому | |||
if (typeof Fireworks !== 'undefined' && typeof Fireworks === 'function') { | |||
return Fireworks; | |||
} | |||
return null; | |||
}, | }, | ||
| Строка 1903: | Строка 1920: | ||
} | } | ||
if (! | var FireworksConstructor = self.getFireworksConstructor(); | ||
if (!FireworksConstructor) { | |||
console.error('Не удалось найти конструктор Fireworks. Проверьте загрузку библиотеки.'); | |||
console.log('Доступные объекты:', { | |||
'window.Fireworks': window.Fireworks, | |||
'window.Fireworks.default': window.Fireworks && window.Fireworks.default, | |||
'window.fireworks': window.fireworks | |||
}); | }); | ||
return; | |||
} | |||
if (!self.fireworks) { | |||
try { | |||
self.fireworks = new FireworksConstructor(self.container, { | |||
autoresize: true, | |||
opacity: 0.5, | |||
acceleration: 1.05, | |||
friction: 0.97, | |||
gravity: 1.5, | |||
particles: 50, | |||
traceLength: 3, | |||
traceSpeed: 10, | |||
explosion: 5, | |||
intensity: 30, | |||
flickering: 50, | |||
lineStyle: 'round', | |||
hue: { min: 0, max: 360 }, | |||
delay: { min: 15, max: 30 }, | |||
rocketsPoint: { min: 50, max: 50 }, | |||
lineWidth: { | |||
explosion: { min: 1, max: 3 }, | |||
trace: { min: 1, max: 2 } | |||
}, | |||
brightness: { min: 50, max: 80 }, | |||
decay: { min: 0.015, max: 0.03 }, | |||
mouse: { click: false, move: false, max: 1 } | |||
}); | |||
} catch (e) { | |||
console.error('Ошибка создания экземпляра Fireworks:', e); | |||
return; | |||
} | |||
} | } | ||