User:燃灯/searchBarMove.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/*
 * 本魔改能:
 *     启用darkNav.css
 *     将导航栏挪到标题栏里面
 *     为上方标题栏增加“项目页”、“讨论”标签
 */
console.log('importing searchbarmove');

$(function() {

// 移动搜索栏
$('#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');
	}
});

});