要使粘性标题居中而不在滚动过程中跳动,可以通过以下步骤实现:
以下是一个示例代码:
HTML:
<div class="header-container">
<h1 class="sticky-title">粘性标题</h1>
</div>
CSS:
.header-container {
height: 80px; /* 设置容器高度 */
width: 100%; /* 设置容器宽度 */
}
.sticky-title {
position: sticky;
top: 0;
width: 100%;
background-color: #f1f1f1;
padding: 20px;
text-align: center;
transform: translateX(-50%);
left: 50%;
}
.sticky-title.scrolled {
background-color: #fff;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
JavaScript:
window.addEventListener('scroll', function() {
var title = document.querySelector('.sticky-title');
var headerContainer = document.querySelector('.header-container');
var scrollPosition = window.scrollY;
if (scrollPosition > headerContainer.offsetHeight) {
title.classList.add('scrolled');
} else {
title.classList.remove('scrolled');
}
});
这样,当页面滚动超过容器元素的高度时,标题将添加一个名为"scrolled"的类,通过CSS样式改变标题的外观,使其居中且背景色变为白色,并添加一个阴影效果。当页面滚动回到容器元素的高度以下时,标题将移除"scrolled"类,恢复到初始样式。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云