Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
Line 3: Line 3:


document.addEventListener("DOMContentLoaded", function () {
document.addEventListener("DOMContentLoaded", function () {
   const carousels = document.querySelectorAll('.card-carousel');
   const carousel = document.querySelector('.card-carousel');
  let isDragging = false;
  let startX;
  let scrollStart;


   carousels.forEach(carousel => {
   carousel.addEventListener('mousedown', (e) => {
     let isDown = false;
     isDragging = true;
     let startX;
    carousel.classList.add('dragging');
     let scrollLeft;
     startX = e.pageX;
     scrollStart = carousel.scrollLeft;
    e.preventDefault(); // <- Important to block text selection
  });


    carousel.addEventListener('mousedown', (e) => {
  document.addEventListener('mouseup', () => {
      isDown = true;
    isDragging = false;
      carousel.classList.add('dragging');
    carousel.classList.remove('dragging');
      startX = e.pageX - carousel.offsetLeft;
  });
      scrollLeft = carousel.scrollLeft;
      e.preventDefault(); // ✅ Prevent text selection
    });


    carousel.addEventListener('mouseleave', () => {
  document.addEventListener('mousemove', (e) => {
      isDown = false;
    if (!isDragging) return;
      carousel.classList.remove('dragging');
    const x = e.pageX;
    });
    const walk = (x - startX) * 1.5;
 
    carousel.scrollLeft = scrollStart - walk;
    carousel.addEventListener('mouseup', () => {
     e.preventDefault();
      isDown = false;
      carousel.classList.remove('dragging');
    });
 
    carousel.addEventListener('mousemove', (e) => {
      if (!isDown) return;
      e.preventDefault(); // ✅ Again, prevent selection on drag
      const x = e.pageX - carousel.offsetLeft;
      const walk = (x - startX) * 1.5;
      carousel.scrollLeft = scrollLeft - walk;
     });
   });
   });
});
});

Revision as of 14:42, 30 May 2025

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


document.addEventListener("DOMContentLoaded", function () {
  const carousel = document.querySelector('.card-carousel');
  let isDragging = false;
  let startX;
  let scrollStart;

  carousel.addEventListener('mousedown', (e) => {
    isDragging = true;
    carousel.classList.add('dragging');
    startX = e.pageX;
    scrollStart = carousel.scrollLeft;
    e.preventDefault(); // <- Important to block text selection
  });

  document.addEventListener('mouseup', () => {
    isDragging = false;
    carousel.classList.remove('dragging');
  });

  document.addEventListener('mousemove', (e) => {
    if (!isDragging) return;
    const x = e.pageX;
    const walk = (x - startX) * 1.5;
    carousel.scrollLeft = scrollStart - walk;
    e.preventDefault();
  });
});