Как я могу свернуть языковой переключатель без JS?

Поэтому я создал рабочую концепцию на основе Bootstrap 5.2.3, в которой я могу переключать языки внутри элемента карточки щелчком по значку на основе функции многократного свертывания (без JavaScript). Флаг, заголовок и содержимое переключаются с NL на EN и обратно при нажатии на флаг

Моя основная проблема: когда вы переключаетесь с одного языка на другой, переключатель кажется довольно неуклюжим: вы можете видеть, как появляется новый заголовок, а старый исчезает. Есть ли команда / способ начальной загрузки, чтобы сделать это переключение более плавным?

Https://jsfiddle.net/17vugqtz/

<link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" integrity = "sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin = "anonymous">
<link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/6.6.6/css/flag-icons.min.css">

<div class = "col">
  <div class = "card mb-4 rounded-3">
    <div class = "card-header" id = "PageSummary">
      <b class = "textNL collapse multi-collapse show" aria-expanded = "true">Samenvatting</b>
      <b class = "textEN collapse multi-collapse" aria-expanded = "false">Summary</b>
      <a id = "flagEN" class = "float-end" data-bs-toggle = "collapse" data-bs-target = ".multi-collapse" aria-controls = "flagNL flagEN collNL collEN textNL textEN" aria-expanded = "true">
        <span class = "collapse multi-collapse show fi-us">&nbsp;EN&nbsp;</span>
      </a>
      <a id = "flagNL" class = "float-end" data-bs-toggle = "collapse" data-bs-target = ".multi-collapse" aria-controls = "flagNL flagEN collNL collEN textNL textEN" aria-expanded = "false">
        <span class = "collapse multi-collapse fi-nl">&nbsp;NL&nbsp;</span>
      </a>
    </div>
    
    <div class = "card-body">
      <div class = "collapse multi-collapse show" id = "collNL" aria-expanded = "true">NL tekst komt hier.
      </div>
      
      <div class = "collapse multi-collapse" id = "collEN" aria-expanded = "false">EN text will go here.
      </div>
    </div>
  </div>
</div>

<script src = "https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity = "sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin = "anonymous"></script>

Что значит "без JS"?

isherwood 10.01.2023 15:32

Не требуется дополнительный Javascript (вне файла Bootstrap js).

Koen Rijnsent 10.01.2023 16:09

То есть только с атрибутами данных? Похоже, вы просто хотите удалить анимацию из заголовка карты. Это точно?

isherwood 10.01.2023 16:39

Да, больше всего «раздражает» появление заголовка, а после этого исчезает старый заголовок, трансформация флага и содержимого менее раздражает. Спасибо за добавление CDN в мой пример кода.

Koen Rijnsent 10.01.2023 16:58
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
Погружение в HTML и инструменты торговли
Погружение в HTML и инструменты торговли
Это была невероятная первая неделя в качестве стипендиата Bytewise Frontend Development Fellow, и я очень рад поделиться со всеми вами всем тем, чему...
Как создать страницу входа в систему с помощью HTML с использованием CSS.
Как создать страницу входа в систему с помощью HTML с использованием CSS.
Создание страницы входа в систему является важной частью создания веб-сайта или приложения, требующего аутентификации пользователя. Простую страницу...
Псевдоэлементы
Псевдоэлементы
Псевдоэлемент CSS - это ключевое слово, добавляемое к селектору, которое позволяет стилизовать определенную часть выбранного элемента (элементов)....
Запись файлов cookie в файл с помощью XSS R
Запись файлов cookie в файл с помощью XSS R
Привет всем :), здесь я продемонстрирую получение cookies, которые будут сохранены в виде txt файла, используя дефект XSS Reflected.
Ve It
Ve It
Мире, где большая часть интернет-трафика приходится на мобильные устройства, отзывчивый веб-дизайн стал необходимостью. Отзывчивый сайт - это сайт,...
0
4
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы не хотите анимации

К сожалению, здесь нельзя использовать data-bs-animation = "false"; он не встроен в компонент сворачивания Bootstrap. Итак, вам нужно решение CSS:

.multi-collapse {
  transition: none;
}

Https://jsfiddle.net/L61dq7u5/

Если вы хотите более плавный переход

Попробуйте CSS ниже.

.multi-collapse {
    opacity: 0;
    transition: opacity 0.35s ease;
    visibility: hidden;
}

.multi-collapse.show {
    visibility: visible;
    transition-delay: 0.05s;
    opacity: 1;
}

Https://jsfiddle.net/23y19x0q/

Круто, очень простое решение!

Koen Rijnsent 10.01.2023 20:46

@KoenRijnsent Только что отредактировал мой ответ, я сначала прочитал ваш вопрос как не желающий анимации, когда вы попросили более плавный переход, поэтому я добавил пример.

Cooleronie 10.01.2023 20:47

Другие вопросы по теме