Difference between revisions of "MediaWiki:Common.js"

From XilePK - Ragnarok Online Server
Jump to navigation Jump to search
Line 23: Line 23:
 
/* Auto-expand sections when clicking anchored links */
 
/* Auto-expand sections when clicking anchored links */
 
$(document).ready(function() {
 
$(document).ready(function() {
   // Handle page load with hash in URL
+
   // Handle initial page load with hash
 
   if (window.location.hash) {
 
   if (window.location.hash) {
     setTimeout(function() {
+
     expandSectionForAnchor(window.location.hash);
      expandSectionForAnchor(window.location.hash);
 
    }, 500); // Pequeno atraso para garantir que a página esteja totalmente carregada
 
 
   }
 
   }
 
    
 
    
Line 46: Line 44:
 
       // If the target is inside a collapsed section, expand it
 
       // If the target is inside a collapsed section, expand it
 
       if (collapsibleSection.length) {
 
       if (collapsibleSection.length) {
         // Expand all parent collapsible sections as well
+
         // Click the toggle button to expand
         targetElement.parents('.mw-collapsible.mw-collapsed').each(function() {
+
         collapsibleSection.find('.mw-collapsible-toggle').first().click();
          $(this).find('.mw-collapsible-toggle').first().click();
 
        });
 
 
          
 
          
         // Scroll to the element after expansion
+
         // Scroll to the element after a short delay to allow expansion
 
         setTimeout(function() {
 
         setTimeout(function() {
 
           $('html, body').animate({
 
           $('html, body').animate({
Line 57: Line 53:
 
           }, 200);
 
           }, 200);
 
         }, 300);
 
         }, 300);
      } else {
 
        // Even if not in a collapsed section, ensure proper scrolling
 
        setTimeout(function() {
 
          $('html, body').animate({
 
            scrollTop: targetElement.offset().top - 100
 
          }, 200);
 
        }, 100);
 
 
       }
 
       }
 
     }
 
     }
 
   }
 
   }
 
});
 
});

Revision as of 17:03, 29 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() {
  // Handle initial page load with hash
  if (window.location.hash) {
    expandSectionForAnchor(window.location.hash);
  }
  
  // Handle clicks on anchor links within the page
  $(document).on('click', 'a[href^="#"]', function(event) {
    var hash = $(this).attr('href');
    expandSectionForAnchor(hash);
  });
  
  // Function to expand section containing an anchor
  function expandSectionForAnchor(hash) {
    // Try to find the anchor element
    var targetElement = $(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);
      }
    }
  }
});