6205
редагувань
Admin (обговорення | внесок) Немає опису редагування |
Admin (обговорення | внесок) Немає опису редагування |
||
| (Не показані 3 проміжні версії цього користувача) | |||
| Рядок 104: | Рядок 104: | ||
}); | }); | ||
// ================================================== | // ================================================== | ||
| Рядок 312: | Рядок 249: | ||
}); | }); | ||
}); | }); | ||
// ================================================== | // ================================================== | ||
| Рядок 317: | Рядок 255: | ||
// ================================================== | // ================================================== | ||
$(function() { | $(function() { | ||
if ($(window).width() > 768) return; | if ($(window).width() > 768) return; | ||
// | // Перевіряємо чи вже створено | ||
if ($('.mobile-search-btn').length > 0) return; | |||
var $searchBtn = $('<div class="mobile-search-btn">' + | |||
'<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2">' + | |||
'<circle cx="11" cy="11" r="8"/>' + | |||
'<path d="m21 21-4.35-4.35"/>' + | |||
'</svg>' + | |||
'</div>'); | |||
var $overlay = $('<div class="mobile-search-overlay">' + | var $overlay = $('<div class="mobile-search-overlay">' + | ||
'<input type=" | '<input type="text" placeholder="Пошук..." autocomplete="off">' + | ||
'< | '<div class="mobile-search-close">×</div>' + | ||
'</div>'); | '</div>'); | ||
$('.minerva-header .branding-box').after($searchBtn); | |||
$('body').append($overlay); | $('body').append($overlay); | ||
var $input = $(' | var $input = $overlay.find('input'); | ||
var $close = $overlay.find('.mobile-search-close'); | var $close = $overlay.find('.mobile-search-close'); | ||
$searchBtn.on('click', function(e) { | |||
$ | |||
e.preventDefault(); | e.preventDefault(); | ||
e.stopPropagation(); | e.stopPropagation(); | ||
$overlay.addClass('active'); | $overlay.addClass('active'); | ||
$input.focus(); | setTimeout(function() { $input.focus(); }, 100); | ||
}); | }); | ||
$close.on('click', function() { | $close.on('click', function() { | ||
$overlay.removeClass('active'); | $overlay.removeClass('active'); | ||
| Рядок 346: | Рядок 290: | ||
}); | }); | ||
$input.on('keydown', function(e) { | $input.on('keydown', function(e) { | ||
if ( | if (e.keyCode === 13) { | ||
var query = $input.val().trim(); | |||
var query = $ | |||
if (query) { | if (query) { | ||
window.location.href = '/index.php?title=Спеціальна:Пошук&search=' + encodeURIComponent(query); | window.location.href = '/index.php?title=Спеціальна:Пошук&search=' + encodeURIComponent(query); | ||
} | } | ||
} | } | ||
if (e.keyCode === 27) { | |||
if (e. | |||
$overlay.removeClass('active'); | $overlay.removeClass('active'); | ||
$input.val(''); | $input.val(''); | ||
| Рядок 365: | Рядок 303: | ||
}); | }); | ||
$overlay.on('click', function(e) { | $overlay.on('click', function(e) { | ||
if (e.target === this) { | if (e.target === this) { | ||
| Рядок 374: | Рядок 311: | ||
}); | }); | ||
/ | // ================================================== | ||
/ | // БЛОКУВАННЯ MINERVA SEARCH OVERLAY (ДЕСКТОП) | ||
/ | // ================================================== | ||
$(function() { | $(function() { | ||
// Тільки для | // Тільки для десктопа | ||
if (window. | if ($(window).width() <= 768) return; | ||
var $searchInput = $('#searchInput'); | |||
var $ | if ($searchInput.length === 0) return; | ||
// | // Затримка щоб DOM завантажився | ||
var $ | setTimeout(function() { | ||
// Змінюємо placeholder | |||
$searchInput.attr('placeholder', 'Пошук...'); | |||
// Клонуємо input щоб прибрати всі event listeners | |||
var $newInput = $searchInput.clone(false); | |||
$searchInput.replaceWith($newInput); | |||
$searchInput = $newInput; | |||
// Прибираємо readonly і класи тригера | |||
$searchInput.prop('readonly', false); | |||
$searchInput.removeAttr('readonly'); | |||
$searchInput.removeClass('skin-minerva-search-trigger'); | |||
// При фокусі - блокуємо overlay | |||
$searchInput.on('focus click', function(e) { | |||
e.stopPropagation(); | |||
// Прибираємо overlay класи з body | |||
$('body').removeClass('overlay-enabled search-enabled'); | |||
// Видаляємо overlay елементи | |||
$('.overlay, .search-overlay').hide(); | |||
// Прибираємо hash | |||
if (window.location.hash === '#/search') { | |||
history.replaceState(null, null, window.location.pathname); | |||
} | |||
}); | |||
// При Enter - перехід на сторінку пошуку | |||
$searchInput.on('keydown', function(e) { | |||
if (e.which === 13 || e.keyCode === 13) { | |||
e.preventDefault(); | |||
var query = $(this).val().trim(); | |||
if (query) { | |||
window.location.href = '/index.php?title=Спеціальна:Пошук&search=' + encodeURIComponent(query); | |||
} | |||
return false; | |||
} | |||
}); | |||
}, 100); | |||
// | // Блокуємо hashchange на #/search | ||
$('. | $(window).on('hashchange', function(e) { | ||
if (window.location.hash === '#/search') { | |||
e.preventDefault(); | |||
history.replaceState(null, null, window.location.pathname); | |||
$('body').removeClass('overlay-enabled search-enabled'); | |||
$('.overlay, .search-overlay').hide(); | |||
} | |||
}); | |||
// Перевіряємо hash при завантаженні | |||
var $ | if (window.location.hash === '#/search') { | ||
history.replaceState(null, null, window.location.pathname); | |||
} | |||
}); | |||
// ================================================== | |||
// BANNER SEARCH (LIQUIPEDIA STYLE) | |||
// ================================================== | |||
$(function() { | |||
var $container = $('#bannerSearchContainer'); | |||
if ($container.length === 0) return; | |||
// | // Створюємо елементи через JS | ||
$ | var $input = $('<input>', { | ||
type: 'text', | |||
id: 'bannerSearchInput', | |||
placeholder: 'Пошук MCC...' | |||
}); | }); | ||
var $btn = $('<button>', { | |||
id: 'bannerSearchBtn', | |||
text: 'Пошук' | |||
}); | }); | ||
// | $container.append($input).append($btn); | ||
// Функція пошуку | |||
function doSearch() { | |||
var query = $input.val().trim(); | |||
if (query) { | |||
window.location.href = '/index.php?title=Спеціальна:Пошук&search=' + encodeURIComponent(query); | |||
} | } | ||
} | |||
$btn.on('click', doSearch); | |||
$input.on('keydown', function(e) { | |||
$ | if (e.keyCode === 13) { | ||
if (e. | e.preventDefault(); | ||
doSearch(); | |||
} | } | ||
}); | }); | ||
}); | }); | ||