MediaWiki:Gadget-reducible-infobox-row.js

Fra Wikipedia, den frie encyklopedi

Merk: Etter publisering vil det kanskje være nødvendig å slette mellomlageret i nettleseren din for å se endringene.

  • Firefox / Safari: Hold Shift mens du klikker på Oppdater, eller trykk enten Ctrl+F5 eller Ctrl+R (⌘+R på Mac)
  • Google Chrome: Trykk Ctrl+Shift+R (⌘+Shift+R på Mac)
  • Internet Explorer / Edge: Hold Ctrl mens du trykker på Oppdater eller trykk Ctrl+F5
  • Opera: Ttrykk Ctrl+F5.
// Code for gadget to reduce overly long content in infobox rows.
// © John Erling Blad, Creative Commons by Attribution 3.0
(function(){
	var limit = 200;
	var duration = 600;
	var minHeight = '175px';
	var more = '[mer]';
	var less = '[mindre]';
	var $infobox = $('.infobox, .infoboks');
	var $cells = $infobox.find('td.reducible').filter(function () {
		return limit<=$(this).text().length;
	});
	$cells.wrapInner('<div class="cont"></div>');
	$cells.addClass('reduced');
	$cells.each(function(){
		var $cell = $(this);
		var $cont = $cell.find('.cont');
		var $less = $('<div>');
		var $more = $('<div>');
		
		var maxHeight = $cell[0].scrollHeight;
		
		// cell
		$cont.attr({
			'style': 'height: ' + minHeight
		});
		
		// the less block
		$less.attr({
			'class': 'less'
		});
		var $a = $('<a>');
		$a.attr({
			'title': 'Include less text'
		});
		$a.text(less);
		$less.append($a);
		$cell.append($less);
		$a.click(function(){
			$cell.toggleClass('reduced');
			$cont.animate(
				{
					'height': minHeight
				},
				duration,
				"linear",
				function() {
					$cell.toggleClass('maximized');
				}
			);
		});
		
		// the more block
		$more.attr({
			'class': 'more'
		});
		$a = $('<a>');
		$a.attr({
			'title': 'Include more text'
		});
		$a.text(more);
		$more.append($a);
		$cell.append($more);
		$a.click(function(){
			$cell.toggleClass('maximized');
			$cont.animate(
				{
					'height': maxHeight
				},
				duration,
				"linear",
				function() {
					$cell.toggleClass('reduced');
				}
			);
		});
	});
}());