Добрый день!
Если ваша цель — использовать стиль `display: none` для скрытия и отображения содержимого, а не `overflow: hidden`, вы можете изменить свой код, чтобы использовать `toggle()` вместо `slideToggle()`. Это позволит контролировать стиль `display` вручную.
Вот пример, как можно изменить ваш код:
```javascript
$('.categories').on('click', function() {
$(this).toggleClass('opened closed');
// Проверяем, добавлен ли класс 'opened' и меняем текст
if ($(this).hasClass('opened')) {
$(this).html('Меньше категорий');
} else {
$(this).html('Больше категорий');
}
// Скрываем или отображаем родственные элементы с помощью display
const targets = $('.id-011, .id-012, .id-013, .id-014, .id-015, .id-016, .id-017, .id-018, .id-019, .id-020');
if ($(this).hasClass('opened')) {
targets.css('display', 'block'); // Отображаем элементы
} else {
targets.css('display', 'none'); // Скрываем элементы
}
});
```
### Что изменилось:
1. Заменили `.slideToggle()` на `css('display', ...)` для прямого управления стилем.
2. Используется `if` для проверки, имеет ли элемент класс `opened`, чтобы управлять состоянием отображения.
Таким образом, вы сможете контролировать стиль `display`, избегая проблем с `overflow: hidden`.
Если вам нужно, чтобы анимация сворачивания/разворачивания сохранялась, вы можете добавить простые CSS-анимации. Однако, если анимация не требуется, этот код будет работать эффективно с использованием стилей `display`.