我正在使用jQuery根据滚动位置更改固定标头上header
元素的大小。我已经获得了可以根据需要进行更改的代码,但是更改是突然的而不是平稳的。我意识到我需要在CSS中使用transition
属性,但是无法弄清楚在哪里或如何做。会有所帮助。
$(window).scroll(function() {
if ($(window).scrollTop() > 200) {
$('.bg').addClass('show')
$('#headerTitle').css("font-size", "1.5em");
} else {
$('.bg').removeClass('show')
$('#headerTitle').css('font-size', "2em")
};
});
$('.scroll').on('click', function(e) {
e.preventDefault()
$('html, body').animate({
scrollTop: $(this.hash).offset().top
}, 1000);
});
.transition {
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
.show {
background-color: #000;
width: 100%;
height: 8.5em;
opacity: 0.8;
}
#headerTitle {
font-size: 2em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<header class="bg transition">
<p style="width: 60%; margin-left: 20%; border-bottom: 1px solid #FFF; padding-bottom: 1em;">
<span id="headerTitle">Joe Blow</span>
</p>
</header>
答案 0 :(得分:0)
您需要在标题样式中包含transition
个属性:
#headerTitle {
font-size: 2em;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}