41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
// static/programmer/js/recall.js
|
|
const ImageModal = {
|
|
modalId: 'imageModal',
|
|
imageId: 'modalImage',
|
|
titleId: 'modalTitle',
|
|
|
|
open(imageUrl, title) {
|
|
const modal = document.getElementById(this.modalId);
|
|
const img = document.getElementById(this.imageId);
|
|
const titleEl = document.getElementById(this.titleId);
|
|
if (modal && img && titleEl) {
|
|
img.src = imageUrl;
|
|
img.alt = title || 'Просмотр изображения';
|
|
titleEl.textContent = title || 'Просмотр изображения';
|
|
modal.style.display = 'block';
|
|
}
|
|
},
|
|
|
|
close() {
|
|
const modal = document.getElementById(this.modalId);
|
|
if (modal) {
|
|
modal.style.display = 'none';
|
|
const img = document.getElementById(this.imageId);
|
|
if (img) img.src = '';
|
|
}
|
|
}
|
|
};
|
|
|
|
// Обработчики для модального окна изображений
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const modal = document.getElementById(ImageModal.modalId);
|
|
if (modal) {
|
|
modal.addEventListener('click', (event) => {
|
|
if (event.target === modal) ImageModal.close();
|
|
});
|
|
}
|
|
|
|
document.addEventListener('keydown', (event) => {
|
|
if (event.key === 'Escape') ImageModal.close();
|
|
});
|
|
}); |