#javascript #html #css
#javascript #HTML #css
Вопрос:
Хорошо, я пытался реализовать заголовок, размер которого изменяется при прокрутке, НО я также добавил к нему другое решение под названием Headroom, я заставил его работать просто отлично, пока заголовок скрывается. Вы можете увидеть мой прогресс ЗДЕСЬ.Если вы заметите, что в первый раз, когда вы это делаете, вы не видите сбоя, он плавно изменяется до меньшего размера заголовка в 45 пикселей, а затем headroom активируется и скрывает заголовок. НО во второй или любой другой раз после этого он не изменяется плавно, а скорее дает сбои или ПЕРЕХОДИТ в меньший заголовок, а затем активируется headroom, я пытаюсь получить его там, где он всегда плавно изменяется при прокрутке (вы увидите, что он уменьшается при ( shrinkOn = 50) изатем скрывается с помощью headroom (в коде headroom вы увидите, что допуск равен 300)
Это скрипт, который сжимает заголовок
<script>
function init() {
window.addEventListener('scroll', function(e){
var distanceY = window.pageYOffset || document.documentElement.scrollTop,
shrinkOn = 50,
header = document.querySelector("header");
if (distanceY
> shrinkOn)
{
classie.add(header,"smaller", "headroom");
} else {
if (classie.has(header,"smaller", "headroom")) {
classie.remove(header,"smaller", "headroom");
}
}
});
}
window.onload = init();
</script>
Это скрипт, который активирует Headroom
var myElement = document.querySelector("header");
// construct an instance of Headroom, passing the element
var headroom = new Headroom(myElement);
// initialise
headroom.init();
Это варианты
"tolerance": 2,
"offset": 350,
Заранее спасибо!
Ответ №1:
По сути, когда вы начинаете, ваши классы в заголовке: headroom headroom--top
По мере прохождения переходов вы добавляете smaller
и удаляете headroom--top
, заменяя headroom--not-top
и добавляя headroom--unpinned
. Итак, вторая панель:
headroom smaller headroom--top headroom--pinned
И заканчивается на:
headroom smaller headroom--not-top headroom--unpinned
Затем, возвращаясь к переходам, вы переключаетесь headroom--not-top
с headroom--top
помощью и headroom--unpinned
с headroom--pinned
помощью , а затем удаляете smaller
, но никогда не удаляете headroom--pinned
, что вам нужно сделать, чтобы вернуться к исходному состоянию.
Итак, результатом здесь является добавление этой строки в скрипт:
...snip
classie.remove(header,"smaller", "headroom");
classie.remove(header,"headroom--pinned", "headroom"); //add this line here
}
Посмотрите здесь:
Ваш разветвленный codepen
Комментарии:
1. Потрясающе! правильно, никогда не думал, что это никогда не будет откреплено, спасибо, именно то, что я искал!