MediaWiki:Common.js:修订间差异
MediaWiki界面页面
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第72行: | 第72行: | ||
} | } | ||
}); | }); | ||
$btn[0].scrollIntoView({ behavior: 'smooth', block: 'nearest' }); | |||
} | } | ||
}, 0); | }, 0); | ||
2026年5月10日 (日) 10:54的版本
$(function() {
function getTooltip() {
var $tip = $('#custom-notetip-popup');
if (!$tip.length) {
$tip = $('<div id="custom-notetip-popup"></div>').appendTo('body');
}
return $tip;
}
mw.loader.using('jquery.makeCollapsible').then(function() {
mw.hook('wikipage.content').add(function($content) {
$content.find('.mw-collapsible').makeCollapsible();
$content.on('mouseenter', '.mw-custom-notetip', function() {
var text = $(this).attr('data-notetip');
if (!text) return;
var $tooltip = getTooltip();
$tooltip.text(text).show();
var rect = this.getBoundingClientRect();
var tipHeight = $tooltip.outerHeight();
var tipWidth = $tooltip.outerWidth();
var scrollY = window.scrollY;
var scrollX = window.scrollX;
var top = rect.top - tipHeight < 20
? scrollY + rect.bottom + 10
: scrollY + rect.top - tipHeight - 10;
var left = scrollX + rect.left + (rect.width / 2) - (tipWidth / 2);
var winWidth = $(window).width();
if (left < 10) left = 10;
if (left + tipWidth > winWidth - 10) left = winWidth - tipWidth - 10;
$tooltip.css({ top: top + 'px', left: left + 'px' });
}).on('mouseleave', '.mw-custom-notetip', function() {
getTooltip().hide();
});
$content.find('.Tabs:not(.tabs-initialized)').each(function() {
var $tabsContainer = $(this);
var $tabItems = $tabsContainer.find('> .Tab');
if (!$tabItems.length) return;
var $labelWrapper = $('<div class="TabLabel"></div>');
var $contentWrapper = $('<div class="TabContent"></div>');
$tabItems.each(function() {
var $item = $(this);
var $label = $item.find('> .TabLabelText');
var $contentBox = $item.find('> .TabContentText');
$label.on('click', function() {
var isSelected = $(this).hasClass('selected');
$labelWrapper.find('.TabLabelText').removeClass('selected');
$contentWrapper.find('.TabContentText').removeClass('selected');
if (!isSelected) {
$(this).addClass('selected');
$contentBox.addClass('selected');
}
});
$labelWrapper.append($label);
$contentWrapper.append($contentBox);
});
$tabsContainer.empty().append($labelWrapper).append($contentWrapper).addClass('tabs-initialized');
});
$content.find('.nav-pill-btn').on('click', function() {
var match = $(this).attr('class').match(/mw-customtoggle-game(\d+)/);
if (!match) return;
var clickedNum = match[1];
setTimeout(function() {
var $myContent = $('#mw-customcollapsible-game' + clickedNum);
if (!$myContent.hasClass('mw-collapsed')) {
$('.nav-pill-content:not(.mw-collapsed)').each(function() {
if (this.id !== 'mw-customcollapsible-game' + clickedNum) {
var otherNum = this.id.replace('mw-customcollapsible-game', '');
$('.mw-customtoggle-game' + otherNum).first().trigger('click');
}
});
$btn[0].scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
}, 0);
});
});
});
});