В веб-дизайне часто возникают ситуации, когда элементы на странице должны отображаться только при наличии контента. Например, если в карточке товара не заполнено поле с характеристикой, лучше скрыть блок, чтобы не оставлять пустое место. К сожалению, в Taptop пока нет встроенного функционала для условного отображения элементов. Но эту проблему можно решить с помощью небольших JavaScript-скриптов.
Представьте, что у вас:
Без условного отображения пустые блоки будут занимать место, и страница будет выглядеть неаккуратно.
window.addEventListener("load", () => {
document.querySelectorAll('[data-check-text]').forEach(container => {
const textBlock = container.querySelector('.text-block-wrap-div');
if (!textBlock || !textBlock.textContent.trim()) {
container.style.display = 'none';
}
});
});
window.addEventListener("load", ...)
– Скрипт запускается после полной загрузки страницы.document.querySelectorAll('[data-check-text]')
– Ищет все элементы с атрибутом data-check-text..forEach(container => { ... })
– перебирает найденные элементы.const textBlock = container.querySelector('.text-block-wrap-div')
– Внутри каждого элемента ищет блок с текстом (в Taptop тексты всегда обёрнуты в .
text-block-wrap-div
).if (!textBlock || !textBlock.textContent.trim())
– Проверяет, есть ли текст внутри блока. Если текста нет, то container.style.display = 'none'
– скрывает весь родительский элемент.data-check-text
к блоку, который нужно скрывать, если он пустой.Важно! В Taptop виджет Text автоматически внутри себя создает элемент с классом .text-block-wrap-div
, но в редакторе этого слоя не видно – просто знайте, что он есть. Именно в элементе text-block-wrap-div
содержится текстовый контент, поэтому мы обращаемся именно к нему.
window.addEventListener("load", () => {
document.querySelectorAll('[data-check-img]').forEach(container => {
const img = container.querySelector('img');
if (!img || !img.src || !img.src.trim()) {
container.style.display = 'none';
}
});
});
data-check-img
.const img = container.querySelector('img')
– Внутри контейнера ищет тег <img>if (!img || !img.src || !img.src.trim())
– Проверяет, есть ли у изображения атрибут src
(то есть загружено ли изображение). Если src
пустой, контейнер скрываетсяdata-check-img
к блоку, который содержит изображение. Важно! В Taptop изображения всегда вставляются через <img>
, поэтому скрипт ищет именно этот тег.
Эти скрипты помогают автоматически скрывать пустые блоки, делая страницы более аккуратными. Пока в Taptop нет встроенного Conditional Visibility, такой подход – отличное временное решение.
data-атрибуты
(data-check-text
или data-check-img
).Теперь ваши страницы будут выглядеть идеально, даже если в коллекции разное количество данных! 🚀