MediaWiki:Common.js: Difference between revisions

From SourceWorlds Wiki
Jump to navigation Jump to search
mNo edit summary
Tag: Reverted
mNo edit summary
Tag: Reverted
Line 26: Line 26:
         position: 'fixed',
         position: 'fixed',
         display: 'none',
         display: 'none',
         border: '2px solid #666',
         border: '5px solid #785000 ',
         background: '#222',
         background: '#222',
         padding: '4px',
         padding: '0px',
        boxShadow: '0 4px 20px rgba(0,0,0,.5)',
         zIndex: 99999,
         zIndex: 99999,
         pointerEvents: 'none',
         pointerEvents: 'none',

Revision as of 05:55, 19 October 2026

/* Any JavaScript here will be loaded for all users on every page load. */


/*
    Template:Spoiler on dev.miraheze.org
*/
$(function(){
    //spoiler block behavior
	$('.spoiler').click(function(){
		$(this).toggleClass('off');
	});
	// spoiler button behavior
    $('#spoilerbtn').text('Show all spoilers');
	$('#spoilerbtn').click(function(){
		$(this).toggleClass('hide');
		$('.spoiler').toggleClass('showall');
		
		if ($(this).is('.hide')){ $(this).text('Hide all spoilers'); } 
        else { $(this).text('Show all spoilers'); }
	});	
});
// [[Category:Scripts]]

$(function () {
    const preview = $('<img id="hover-preview">').css({
        position: 'fixed',
        display: 'none',
        border: '5px solid #785000 ',
        background: '#222',
        padding: '0px',
        zIndex: 99999,
        pointerEvents: 'none',
        maxWidth: '50vw',
        maxHeight: '50vh'
    });

    $('body').append(preview);

    $('.hoverzoom img').on('mouseenter', function () {
        let fullSrc = $(this).attr('src');

        // Convert MediaWiki thumbnail URL -> original file URL
        fullSrc = fullSrc
            .replace('/thumb/', '/')
            .replace(/\/\d+px-[^/]+$/, '');

        preview
            .off('load')
            .on('load', function () {
                $(this).css({
                    width: this.naturalWidth / 2,
                    height: 'auto'
                });
            })
            .attr('src', fullSrc)
            .show();
    });

    $('.hoverzoom img').on('mousemove', function (e) {
        preview.css({
            left: e.clientX + 20,
            top: e.clientY + 20
        });
    });

    $('.hoverzoom img').on('mouseleave', function () {
        preview.hide();
    });
});