Difference between revisions of "MediaWiki:Common.js"

From XilePK - Ragnarok Online Server
Jump to navigation Jump to search
Line 19: Line 19:
 
     }, 500);
 
     }, 500);
 
   });
 
   });
 +
});
 +
 +
/* Auto-expand sections when clicking anchored links */
 +
$(document).ready(function() {
 +
  // Check if URL has a hash (anchor)
 +
  if (window.location.hash) {
 +
    // Try to find the anchor element
 +
    var targetElement = $(window.location.hash);
 +
    if (targetElement.length) {
 +
      // Find the closest collapsible section
 +
      var collapsibleSection = targetElement.closest('.mw-collapsible.mw-collapsed');
 +
     
 +
      // If the target is inside a collapsed section, expand it
 +
      if (collapsibleSection.length) {
 +
        // Click the toggle button to expand
 +
        collapsibleSection.find('.mw-collapsible-toggle').first().click();
 +
       
 +
        // Scroll to the element after a short delay to allow expansion
 +
        setTimeout(function() {
 +
          $('html, body').animate({
 +
            scrollTop: targetElement.offset().top - 100
 +
          }, 200);
 +
        }, 300);
 +
      }
 +
    }
 +
  }
 
});
 
});

Revision as of 21:57, 12 April 2025

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

$(document).ready(function() {
  $(document).on('click', '.warp-copy', function() {
    var textToCopy = $(this).attr('data-copy');
    
    var tempInput = document.createElement('textarea');
    tempInput.value = textToCopy;
    document.body.appendChild(tempInput);
    tempInput.select();
    document.execCommand('copy');
    document.body.removeChild(tempInput);
    
    var originalColor = $(this).css('color');
    $(this).css('color', 'green');
    var self = this;
    setTimeout(function() {
      $(self).css('color', originalColor);
    }, 500);
  });
});

/* Auto-expand sections when clicking anchored links */
$(document).ready(function() {
  // Check if URL has a hash (anchor)
  if (window.location.hash) {
    // Try to find the anchor element
    var targetElement = $(window.location.hash);
    if (targetElement.length) {
      // Find the closest collapsible section
      var collapsibleSection = targetElement.closest('.mw-collapsible.mw-collapsed');
      
      // If the target is inside a collapsed section, expand it
      if (collapsibleSection.length) {
        // Click the toggle button to expand
        collapsibleSection.find('.mw-collapsible-toggle').first().click();
        
        // Scroll to the element after a short delay to allow expansion
        setTimeout(function() {
          $('html, body').animate({
            scrollTop: targetElement.offset().top - 100
          }, 200);
        }, 300);
      }
    }
  }
});