MediaWiki:Common.js:修订间差异
MediaWiki界面页面
更多操作
创建页面,内容为“→这里的任何JavaScript将为所有用户在每次页面加载时加载。: <script> // 以下代码应在 MediaWiki:Common.js 中加载 // 为了演示,这里直接嵌入;实际使用时请移至 Common.js (function () { 'use strict'; // 仅在首页执行(检测页面名称) var pageName = mw.config.get('wgPageName') || ''; if (pageName !== '首页' && pageName !== 'Main_Page') { return; } // ---------- 1.…” |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */ | /* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */ | ||
(function() { | |||
'use strict'; | |||
( | // 移除页面名称限制,确保在首页运行(您也可以保留判断) | ||
// var pageName = mw.config && mw.config.get('wgPageName') || ''; | |||
// if (pageName !== '首页' && pageName !== 'Main_Page') return; | |||
// ---------- 1. 强制显示欢迎弹窗(重置 localStorage) ---------- | |||
// 如果您想永久取消“不再提醒”功能,可以注释掉下面两行 | |||
// localStorage.removeItem('hpWelcomeNoShow'); // 取消注释可重置 | |||
// 或者直接让弹窗始终显示(不隐藏) | |||
var welcome = document.getElementById('hpWelcome'); | |||
var closeBtn = document.getElementById('hpWelcomeClose'); | |||
var dismissCheck = document.getElementById('hpWelcomeDismiss'); | |||
if (welcome && closeBtn) { | |||
// 确保弹窗可见(移除隐藏类) | |||
welcome.classList.remove('hidden'); | |||
// 无论之前是否存储,都显示弹窗(如果您想保留记忆功能,可保留以下判断) | |||
// var noShow = localStorage.getItem('hpWelcomeNoShow') === 'true'; | |||
// if (noShow) welcome.classList.add('hidden'); | |||
function closeWelcome() { | |||
welcome.classList.add('hidden'); | |||
if (dismissCheck && dismissCheck.checked) { | |||
localStorage.setItem('hpWelcomeNoShow', 'true'); | |||
} | } | ||
} | |||
closeBtn.addEventListener('click', closeWelcome); | |||
} | |||
// ---------- 2. 卡片渐显(立即生效) ---------- | |||
} | var cards = document.querySelectorAll('.hp-card, .hp-card-featured'); | ||
if (cards.length) { | |||
// 直接给所有卡片添加 visible 类(无动画延迟) | |||
cards.forEach(function(card) { | |||
card.classList.add('hp-visible'); | |||
}); | |||
// | // 如果你仍想保留滚动渐显效果,可以保留 IntersectionObserver,但为了确保可见,我们先全部显示 | ||
// 以下为备用:如果浏览器支持,且您希望滚动渐显,可以注释掉上面的直接添加,改用下面的观察者 | |||
if ('IntersectionObserver' in window | /* | ||
var observer = new IntersectionObserver(function (entries) { | if ('IntersectionObserver' in window) { | ||
entries.forEach(function (entry) { | var observer = new IntersectionObserver(function(entries) { | ||
entries.forEach(function(entry) { | |||
if (entry.isIntersecting) { | if (entry.isIntersecting) { | ||
var card = entry.target; | var card = entry.target; | ||
var delay = parseInt(card.getAttribute('data-delay')) || 0; | var delay = parseInt(card.getAttribute('data-delay')) || 0; | ||
setTimeout(function () { | setTimeout(function() { | ||
card.classList.add('hp-visible'); | card.classList.add('hp-visible'); | ||
}, delay); | }, delay); | ||
| 第49行: | 第55行: | ||
} | } | ||
}); | }); | ||
}, { | }, { threshold: 0.1 }); | ||
cards.forEach(function(card) { observer.observe(card); }); | |||
cards.forEach(function (card) { | |||
} else { | } else { | ||
cards.forEach(function(card) { card.classList.add('hp-visible'); }); | |||
cards.forEach(function (card) { | |||
} | } | ||
*/ | |||
} | |||
})(); | |||
2026年9月7日 (一) 00:10的最新版本
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
(function() {
'use strict';
// 移除页面名称限制,确保在首页运行(您也可以保留判断)
// var pageName = mw.config && mw.config.get('wgPageName') || '';
// if (pageName !== '首页' && pageName !== 'Main_Page') return;
// ---------- 1. 强制显示欢迎弹窗(重置 localStorage) ----------
// 如果您想永久取消“不再提醒”功能,可以注释掉下面两行
// localStorage.removeItem('hpWelcomeNoShow'); // 取消注释可重置
// 或者直接让弹窗始终显示(不隐藏)
var welcome = document.getElementById('hpWelcome');
var closeBtn = document.getElementById('hpWelcomeClose');
var dismissCheck = document.getElementById('hpWelcomeDismiss');
if (welcome && closeBtn) {
// 确保弹窗可见(移除隐藏类)
welcome.classList.remove('hidden');
// 无论之前是否存储,都显示弹窗(如果您想保留记忆功能,可保留以下判断)
// var noShow = localStorage.getItem('hpWelcomeNoShow') === 'true';
// if (noShow) welcome.classList.add('hidden');
function closeWelcome() {
welcome.classList.add('hidden');
if (dismissCheck && dismissCheck.checked) {
localStorage.setItem('hpWelcomeNoShow', 'true');
}
}
closeBtn.addEventListener('click', closeWelcome);
}
// ---------- 2. 卡片渐显(立即生效) ----------
var cards = document.querySelectorAll('.hp-card, .hp-card-featured');
if (cards.length) {
// 直接给所有卡片添加 visible 类(无动画延迟)
cards.forEach(function(card) {
card.classList.add('hp-visible');
});
// 如果你仍想保留滚动渐显效果,可以保留 IntersectionObserver,但为了确保可见,我们先全部显示
// 以下为备用:如果浏览器支持,且您希望滚动渐显,可以注释掉上面的直接添加,改用下面的观察者
/*
if ('IntersectionObserver' in window) {
var observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
var card = entry.target;
var delay = parseInt(card.getAttribute('data-delay')) || 0;
setTimeout(function() {
card.classList.add('hp-visible');
}, delay);
observer.unobserve(card);
}
});
}, { threshold: 0.1 });
cards.forEach(function(card) { observer.observe(card); });
} else {
cards.forEach(function(card) { card.classList.add('hp-visible'); });
}
*/
}
})();