MediaWiki:Test.js: различия между версиями

Страница интерфейса MediaWiki
Нет описания правки
Метка: ручная отмена
Нет описания правки
Метка: ручная отмена
Строка 1: Строка 1:
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.recipe-list li').forEach(function(item) {
   var headers = document.getElementsByClassName('collapsible-header');
   if (item.classList.contains('instruction')) return;
   for (var i = 0; i < headers.length; i++) {
   if (item === item.parentElement.lastElementChild) return;
    headers[i].onclick = function () {
  if (item.querySelector('.chem-icon')) return;  
      var content = this.nextElementSibling;
      var arrow = this.getElementsByClassName('collapsible-arrow')[0];


      if (!content || !arrow) return;
  var icon = document.createElement('img');
  icon.className = 'chem-icon';
  icon.src = 'Beaker.png';
  item.insertBefore(icon, item.firstChild);
});


      var isOpen = content.classList.contains('open');
$('.collapsible-header').click(function() {
 
  var content = $(this).next('.collapsible-content');
      if (isOpen) {
  content.slideToggle(300, function() {
        content.classList.remove('open');
    $(this).find('li').each(function(index) {
        arrow.classList.remove('rotated');
       $(this).css('animation-delay', (index * 0.1) + 's')
       } else {
            .toggleClass('visible', $(this).is(':visible'));
        content.classList.add('open');
     });
        arrow.classList.add('rotated');
   }).toggleClass('active');
      }
     };
   }
});
});

Версия от 05:23, 8 мая 2025

document.querySelectorAll('.recipe-list li').forEach(function(item) {
  if (item.classList.contains('instruction')) return;
  if (item === item.parentElement.lastElementChild) return;
  if (item.querySelector('.chem-icon')) return; 

  var icon = document.createElement('img');
  icon.className = 'chem-icon';
  icon.src = 'Beaker.png';
  item.insertBefore(icon, item.firstChild);
});

$('.collapsible-header').click(function() {
  var content = $(this).next('.collapsible-content');
  content.slideToggle(300, function() {
    $(this).find('li').each(function(index) {
      $(this).css('animation-delay', (index * 0.1) + 's')
             .toggleClass('visible', $(this).is(':visible'));
    });
  }).toggleClass('active');
});