修复动画掉帧的问题,增加昼夜切换的过渡动画
This commit is contained in:
1 parent
94471c4c89
commit
624d0bda0f
7 files changed
+246
-131
No files matched your search
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user