MediaWiki:Vector.js: Różnice pomiędzy wersjami

Z High School DxD Wiki
Skocz do:nawigacji, wyszukiwania
Linia 33: Linia 33:
 
var pos = el.position();
 
var pos = el.position();
 
 
$(this).children('ul').css({display:'block', left: el.width()+pos.left});
+
$(this).children('ul').css({display:'block', left: el.width()+pos.left, top: -el.height()});
 
//parent.addClass('hover');
 
//parent.addClass('hover');
 
}).on('mouseleave', 'li', function() {
 
}).on('mouseleave', 'li', function() {

Wersja z 22:09, 12 lip 2013

$(function(){
if ($.browser.mozilla)
{
$('#left-navigation, #right-navigation').css('top', '10.8em');
}
});

window.wgSidebar = (window.wgSidebar||{});
importScript('MediaWiki:Vector.js/Sidebar.js');
 

Sidebar = {
	getItem: function(name) {
		return $('#n-' + encodeURIComponent(name.replace(/ /g, '-')).replace(/%/g, '.'));
	},
	init: function() {
		if (!window.wgSidebar)
			return;
		
		for (var menu in wgSidebar) {
			var item = Sidebar.getItem(menu);
			
			Sidebar.buildSubmenu(item, wgSidebar[menu]);
			
			var ul = item.parent('ul');
			
		}
		
		console.log(ul);
		
		ul.on('mouseenter', 'li', function() {
			var el = $(this);
			var pos = el.position();
		
			$(this).children('ul').css({display:'block', left: el.width()+pos.left, top: -el.height()});
			//parent.addClass('hover');
		}).on('mouseleave', 'li', function() {
		
			var submenu = $(this).children('ul');
			if(submenu.is(':visible'))
			{
				submenu.css({display: 'none'});
			}
		});
		
	},
	
	
	buildSubmenu: function(menu, items)
	{
		var ul = $('<ul>');
		
		menu.addClass('submenu');
		
		for (var i in items)
		{
			var item = items[i];
			var li = $('<li>');
			
			if (typeof item === 'string')
			{
				var link = this.getLink(item);
				li.append(link);
				ul.append(li);
			}
			else if(typeof item === 'object')
			{
				for (var j in item)
				{
					var link = this.getLink(j);
					li.append(link);
					ul.append(li);
					this.buildSubmenu(li, item[j]);
				}
			} else continue;
		}
		
		menu.append(ul);
	},
	getLink: function(txt, has_submenu)
	{
		var pos = txt.indexOf('|');
		var article = '';
		var caption = '';
		
		if (pos > 0)
		{
			article = txt.substr(0, pos);
			caption = txt.substr(pos + 1);
		}
		else
		{
			article = txt;
			caption = txt;
		}
		
		var href = '';
		
		if (article.length > 7 && article.substr(0,7) == 'http://')
		{
			href = article;
		}
		else
		{
			article = encodeURIComponent(article.replace(/ /g, '_'));
			href = wgArticlePath.replace('$1',article);
		}
		
		return '<a href="' + article + '">' + caption  + '</a>';
	}
}

//$(function(){Sidebar.init();});
Źródło „https://hsdxd.usermd.net/w/index.php?title=MediaWiki:Vector.js&oldid=181