Список пользователей

1
Админ
Постов: 101
2
Элита
Постов: 34
3
Элита
Постов: 28
4
VIP
Постов: 26
5
Дизайнер
Постов: 25
6
Пользователи
Постов: 25
7
Пользователи
Постов: 24
8
Проверенные
Постов: 21

  • Страница 1 из 1
  • 1
Переключатели форума в лентах на Ucoz
Дата: Вторник, 07.10.2025, 17:37 | Сообщение # 1 | | Написал: Начинающий
Автор темы
Мурчанн не в сети
        Сообщений:101
         Регистрация:20.10.2016

Бывает, что повлиять на классы через CSS-стили практически невозможно — сам уже не раз в этом убеждался. В таких случаях приходится действовать через скрипты.

Я написал небольшой скрипт, который управляет переключателями форума в лентах, при этом не затрагивая работу других переключателей — например, тех, что используются в темах сообщений.

Чтобы всё работало корректно, вставляем скрипт в шаблон форума, в раздел «Вид темы/опроса», в самый низ. Таким образом можно гибко зацепить и настроить под себя всю схему переключателей. 2

Код
<script>
document.addEventListener("DOMContentLoaded", function() {

  // === Встраиваем CSS напрямую в DOM, чтобы точно сработал ===
  const style = document.createElement("style");
  style.textContent = `
    ul.switches.forum-pages {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px;
      padding: 6px 0;
    }
    ul.switches.forum-pages li {
      list-style: none;
    }

/* Блок информации о странице */
ul.switches.forum-pages li.pagesInfo {
  display: inline-block;
  padding: 16px 22px;               /* компактные внутренние отступы */
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, #9a49a9, #6a2070); /* гармонирует с кнопками */
  border: 2.5px solid rgba(255, 255, 255, 0.25);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(166, 76, 166, 0.6), inset 0 0 3px rgba(255,255,255,0.15);
  text-align: center;
  vertical-align: middle;
  min-width: 100px;                 /* минимальная ширина для цифр */
  line-height: normal;              /* высота строки по тексту */
  transition: all 0.25s ease;
}

/* Подсветка при наведении */
ul.switches.forum-pages li.pagesInfo:hover {
  background: linear-gradient(135deg, #bb60bb, #a64ca6);
  border-color: #fff;
  box-shadow: 0 3px 8px rgba(166, 76, 166, 0.8), inset 0 0 4px rgba(255,255,255,0.2);
}

/* Стили для цифр внутри */
ul.switches.forum-pages li.pagesInfo span.curPage,
ul.switches.forum-pages li.pagesInfo span.numPages {
  font-weight: 700;
  color: #ffd7ff;
}

    /* Кнопки навигации */
    .forum-nav-btn {
      display: inline-block;
      padding: 8px 14px;
      font-size: 13px;
      font-weight: 600;
      color: #fff !important;
      background: linear-gradient(135deg, #a64ca6, #702070);
      border: 1.5px solid rgba(255, 255, 255, 0.25);
      border-radius: 6px;
      box-shadow: 0 2px 8px rgba(166, 76, 166, 0.6);
      text-decoration: none !important;
      transition: all 0.25s ease;
      user-select: none;
      line-height: 1.1;
    }

    .forum-nav-btn:hover {
      border-color: #fff;
      background: linear-gradient(135deg, #bb60bb, #a64ca6);
      box-shadow: 0 3px 10px rgba(166, 76, 166, 0.9), 0 0 5px #fff;
      transform: translateY(-1px);
    }

    .forum-nav-btn:active {
      transform: translateY(1px);
      box-shadow: 0 0 5px rgba(166, 76, 166, 0.6);
    }

/* Активная страница */
ul.switches.forum-pages li.switchActive {
  background: linear-gradient(135deg, #b66cb6, #702070);
  border: 2px solid #fff;
  color: #fff;
  border-radius: 4px;            /* слегка скруглённые углы */
  padding: 0 24px;                /* горизонтальный padding оставляем */
  height: 64px !important;        /* фиксированная высота кнопки */
  min-height: 64px !important;    /* предотвращаем сплющивание */
  font-weight: 700;
  line-height: 64px;              /* вертикальное выравнивание текста */
  display: inline-block;          /* обязательно для корректного отображения */
  text-align: center;
  min-width: 64px;                /* можно подогнать под ширину цифры */
  box-shadow:
    0 4px 10px rgba(0, 0, 0, 0.35),  /* внешняя тень для объёма */
    inset 0 0 6px rgba(255, 255, 255, 0.25); /* внутреннее свечение */
  transition: all 0.25s ease;
  transform: translateY(-1px);
  vertical-align: middle;
}

ul.switches.forum-pages li.switchActive:hover {
  box-shadow:
    0 5px 12px rgba(0, 0, 0, 0.45),
    inset 0 0 8px rgba(255, 255, 255, 0.35);
  transform: translateY(-2px);
}

ul.switches.forum-pages li.switchActive:hover {
  box-shadow:
    0 5px 12px rgba(0, 0, 0, 0.45),
    inset 0 0 8px rgba(255, 255, 255, 0.35);
  transform: translateY(-2px);
}

    ul.switches.forum-pages li.switchActive:hover {
      box-shadow:
        0 4px 12px rgba(0, 0, 0, 0.45),
        inset 0 0 8px rgba(255, 255, 255, 0.35);
      transform: translateY(-2px);
    }

    /* Остальные номера страниц */
    ul.switches.forum-pages li a.switchDigit {
      display: inline-block;
      padding: 8px 11px;
      color: #a64ca6;
      border: 1.5px solid rgba(166, 76, 166, 0.4);
      border-radius: 5px;
      font-weight: 500;
      transition: all 0.25s ease;
      text-decoration: none;
      background: rgba(166, 76, 166, 0.08);
      box-shadow: inset 0 0 4px rgba(166, 76, 166, 0.3);
    }

    ul.switches.forum-pages li a.switchDigit:hover {
      border-color: #a64ca6;
      background: rgba(166, 76, 166, 0.25);
      color: #702070;
      box-shadow: 0 0 6px rgba(166, 76, 166, 0.7);
    }

    @keyframes fadeInNav {
      from {opacity: 0; transform: translateY(4px);}
      to {opacity: 1; transform: translateY(0);}
    }
    ul.switches.forum-pages {
      animation: fadeInNav 0.4s ease-in-out;
    }
  `;
  document.head.appendChild(style);

  // === Функция обновления элементов ===
  function updateForumSwitches() {
    document.querySelectorAll("ul.switches.forum-pages").forEach(list => {

      // Кнопка Назад
      list.querySelectorAll("a.switchBack, li.switch-prev a").forEach(btn => {
        if (!btn.dataset.fixed) {
          btn.textContent = "⬅ Назад";
          btn.classList.add("forum-nav-btn");
          btn.dataset.fixed = "true";
        }
      });

      // Кнопка Вперёд
      list.querySelectorAll("a.switchNext, li.switch-next a").forEach(btn => {
        if (!btn.dataset.fixed) {
          btn.textContent = "Вперёд ➡";
          btn.classList.add("forum-nav-btn");
          btn.dataset.fixed = "true";
        }
      });

      // Удаляем « и »
      list.querySelectorAll("span").forEach(span => {
        if (["»", "«"].includes(span.textContent.trim())) span.remove();
      });
    });
  }

  // Первичный запуск
  updateForumSwitches();

  // Наблюдение за изменениями в DOM
  const observer = new MutationObserver(updateForumSwitches);
  observer.observe(document.body, { childList: true, subtree: true });
});
</script>




При этом схема переключателей в сообщениях на форуме остаётся нетронутой — там продолжает работать другой скрипт и настройка CSS. 12



Упрощенная схема но вполне красивая . 2

Мурчанн

Признаюсь, не знаю почему, но глядя на звезды мне всегда хочется мечтать.
  • Страница 1 из 1
  • 1
Поиск: