修复动画掉帧的问题,增加昼夜切换的过渡动画

This commit is contained in:
zqlit committed 2026-05-24 14:00:12 +08:00
1 parent 94471c4c89
commit 624d0bda0f
7 files changed
+246 -131

No files matched your search

+22 -10
View File
@@ -5,6 +5,16 @@ window.initSearch = function() {
var searchLoadingPromise = null;
function debounce(fn, delay) {
var timer;
return function() {
var context = this;
var args = arguments;
clearTimeout(timer);
timer = setTimeout(function() { fn.apply(context, args); }, delay);
};
}
function loadSearchIndex() {
if (window.searchIndex) {
return Promise.resolve(window.searchIndex);
@@ -91,7 +101,7 @@ function initSearchModal() {
}
});
searchInput.addEventListener('input', function() {
searchInput.addEventListener('input', debounce(function() {
var query = this.value.trim().toLowerCase();
if (query.length === 0) {
@@ -135,7 +145,7 @@ function initSearchModal() {
} else {
searchResults.innerHTML = '<p class="search-tip">未找到相关文章</p>';
}
});
}), 200);
}
}
}
@@ -224,7 +234,7 @@ function initInlineSearch() {
});
}
input.addEventListener('input', function() {
input.addEventListener('input', debounce(function() {
var query = this.value.trim().toLowerCase();
var inputGroup = this.closest('.search-input-group');
@@ -285,19 +295,21 @@ function initInlineSearch() {
resultsContainer.innerHTML = '<div class="search-result-item no-result">暂无相关内容</div>';
resultsContainer.classList.add('show');
}
});
}), 200);
// Close on click outside
if (!window.inlineSearchClickOutside) {
window.inlineSearchClickOutside = function(e) {
var header = document.getElementById('essay-header');
var searchContainer = document.getElementById('search-container');
if (!searchContainer || searchContainer.style.display !== 'block') return;
var header = document.getElementById('essay-header');
var resultsContainer = document.getElementById('inline-search-results');
if (header && searchContainer && resultsContainer && searchContainer.style.display === 'block') {
if (!searchContainer.contains(e.target) && !header.contains(e.target) && !resultsContainer.contains(e.target)) {
window.toggleSearchMode(false);
}
if (header && resultsContainer &&
!searchContainer.contains(e.target) &&
!header.contains(e.target) &&
!resultsContainer.contains(e.target)) {
window.toggleSearchMode(false);
}
};
document.addEventListener('click', window.inlineSearchClickOutside);