<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lgbthistoryuk.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js</id>
	<title>MediaWiki:Common.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lgbthistoryuk.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js"/>
	<link rel="alternate" type="text/html" href="https://lgbthistoryuk.org/index.php?title=MediaWiki:Common.js&amp;action=history"/>
	<updated>2026-07-17T12:24:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://lgbthistoryuk.org/index.php?title=MediaWiki:Common.js&amp;diff=55751&amp;oldid=prev</id>
		<title>LGBT-HP: Before/after slider: JS</title>
		<link rel="alternate" type="text/html" href="https://lgbthistoryuk.org/index.php?title=MediaWiki:Common.js&amp;diff=55751&amp;oldid=prev"/>
		<updated>2026-07-15T07:04:59Z</updated>

		<summary type="html">&lt;p&gt;Before/after slider: JS&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* Before/after image slider — powers {{Before after}} / see [[Help:Before-after slider]] */&lt;br /&gt;
( function () {&lt;br /&gt;
	function initSliders( root ) {&lt;br /&gt;
		var sliders = ( root || document ).querySelectorAll( &amp;#039;.ba-slider:not(.ba-ready)&amp;#039; );&lt;br /&gt;
		Array.prototype.forEach.call( sliders, function ( slider ) {&lt;br /&gt;
			var after = slider.querySelector( &amp;#039;.ba-after-wrap&amp;#039; );&lt;br /&gt;
			if ( !after ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			slider.classList.add( &amp;#039;ba-ready&amp;#039; );&lt;br /&gt;
			var handle = document.createElement( &amp;#039;span&amp;#039; );&lt;br /&gt;
			handle.className = &amp;#039;ba-handle&amp;#039;;&lt;br /&gt;
			slider.appendChild( handle );&lt;br /&gt;
&lt;br /&gt;
			function setPos( p ) {&lt;br /&gt;
				p = Math.max( 0, Math.min( 100, p ) );&lt;br /&gt;
				var inset = &amp;#039;inset(0 0 0 &amp;#039; + p + &amp;#039;%)&amp;#039;;&lt;br /&gt;
				after.style.webkitClipPath = inset;&lt;br /&gt;
				after.style.clipPath = inset;&lt;br /&gt;
				handle.style.left = p + &amp;#039;%&amp;#039;;&lt;br /&gt;
			}&lt;br /&gt;
			function move( e ) {&lt;br /&gt;
				var rect = slider.getBoundingClientRect();&lt;br /&gt;
				var clientX = e.touches ? e.touches[ 0 ].clientX : e.clientX;&lt;br /&gt;
				setPos( ( clientX - rect.left ) / rect.width * 100 );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var dragging = false;&lt;br /&gt;
			slider.addEventListener( &amp;#039;mousedown&amp;#039;, function ( e ) { dragging = true; move( e ); e.preventDefault(); } );&lt;br /&gt;
			document.addEventListener( &amp;#039;mousemove&amp;#039;, function ( e ) { if ( dragging ) { move( e ); } } );&lt;br /&gt;
			document.addEventListener( &amp;#039;mouseup&amp;#039;, function () { dragging = false; } );&lt;br /&gt;
			slider.addEventListener( &amp;#039;touchstart&amp;#039;, function ( e ) { dragging = true; move( e ); }, { passive: true } );&lt;br /&gt;
			slider.addEventListener( &amp;#039;touchmove&amp;#039;, function ( e ) { if ( dragging ) { move( e ); } }, { passive: true } );&lt;br /&gt;
			slider.addEventListener( &amp;#039;touchend&amp;#039;, function () { dragging = false; } );&lt;br /&gt;
&lt;br /&gt;
			setPos( 50 );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if ( window.mw &amp;amp;&amp;amp; mw.hook ) {&lt;br /&gt;
		mw.hook( &amp;#039;wikipage.content&amp;#039; ).add( function ( $c ) {&lt;br /&gt;
			initSliders( $c &amp;amp;&amp;amp; $c[ 0 ] ? $c[ 0 ] : document );&lt;br /&gt;
		} );&lt;br /&gt;
	} else if ( document.readyState !== &amp;#039;loading&amp;#039; ) {&lt;br /&gt;
		initSliders( document );&lt;br /&gt;
	} else {&lt;br /&gt;
		document.addEventListener( &amp;#039;DOMContentLoaded&amp;#039;, function () { initSliders( document ); } );&lt;br /&gt;
	}&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>LGBT-HP</name></author>
	</entry>
</feed>