feat: добавлена современная страница деталей услуги с портфолио и отзывами
This commit is contained in:
60
smartsoltech/static/assets/js/force-unblock.js
Normal file
60
smartsoltech/static/assets/js/force-unblock.js
Normal file
@@ -0,0 +1,60 @@
|
||||
// Force unblock - агрессивная очистка блокирующих элементов
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
function forceUnblock() {
|
||||
console.log('ForceUnblock: Starting cleanup...');
|
||||
|
||||
// Удаляем loading screen
|
||||
const loadingScreen = document.getElementById('loading-screen');
|
||||
if (loadingScreen) {
|
||||
loadingScreen.remove();
|
||||
console.log('ForceUnblock: Loading screen removed');
|
||||
}
|
||||
|
||||
// Убираем modal-open с body
|
||||
document.body.classList.remove('modal-open');
|
||||
document.body.style.overflow = '';
|
||||
document.body.style.paddingRight = '';
|
||||
console.log('ForceUnblock: Body cleaned');
|
||||
|
||||
// Закрываем все модальные окна
|
||||
document.querySelectorAll('.modal').forEach(modal => {
|
||||
modal.classList.remove('show');
|
||||
modal.style.display = 'none';
|
||||
modal.setAttribute('aria-hidden', 'true');
|
||||
modal.removeAttribute('aria-modal');
|
||||
});
|
||||
console.log('ForceUnblock: Modals closed');
|
||||
|
||||
// Удаляем все backdrop элементы
|
||||
document.querySelectorAll('.modal-backdrop').forEach(backdrop => {
|
||||
backdrop.remove();
|
||||
});
|
||||
console.log('ForceUnblock: Backdrops removed');
|
||||
|
||||
// Убираем pointer-events: none с всех элементов кроме скрытых модалов
|
||||
document.querySelectorAll('[style*="pointer-events"]').forEach(el => {
|
||||
if (!el.classList.contains('modal') || !el.classList.contains('show')) {
|
||||
el.style.pointerEvents = '';
|
||||
}
|
||||
});
|
||||
console.log('ForceUnblock: Pointer events cleaned');
|
||||
|
||||
// Проверяем, что body кликабельно
|
||||
document.body.style.pointerEvents = 'auto';
|
||||
|
||||
console.log('ForceUnblock: Cleanup complete!');
|
||||
}
|
||||
|
||||
// Выполняем сразу
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', forceUnblock);
|
||||
} else {
|
||||
forceUnblock();
|
||||
}
|
||||
|
||||
// И еще раз через небольшую задержку для надежности
|
||||
setTimeout(forceUnblock, 100);
|
||||
setTimeout(forceUnblock, 500);
|
||||
})();
|
||||
Reference in New Issue
Block a user