Такое поведение имеет смысл для display: none, но я считаю, что это противоречит -интуитивно для отображения: содержимое.
Мне кажется приемлемым вариант использования чистой оболочки, которая извлекает и отображает свое содержимое только на пересечении области просмотра.Пример
Код: Выделить всё
function callback(entries, observer) {
entries.forEach(entry => {
if (entry.isIntersecting) {
document.getElementById('content').style.display = 'block';
document.getElementById('loader').style.display = 'none';
}
});
};
const observer = new IntersectionObserver(callback);
const target = document.getElementById('wrapper');
observer.observe(target);
Код: Выделить всё
#wrapper {
display: contents;
}
#content {
display: none;
}
Код: Выделить всё
Loading...
Shown on viewport intersection
Глядя на документацию Mozilla, я вижу следующее:
Эти элементы сами по себе не создают конкретный блок
Но все же я ожидаю, что IntersectionObserver , чтобы иметь возможность его обнаружить.
Полагаю, это вопрос из двух частей:
[*]Это действительно предполагаемое поведение или нежелательный побочный эффект?
[*]Если это запланированное поведение, каковы правильные варианты использования отображаемого содержимого?
Подробнее здесь: https://stackoverflow.com/questions/727 ... y-contents