预览

模拟具有滚动功能的玻璃形态固定导航器。单击预览中的按钮即可查看滚动效果。

内容区1 — 请向下滚动
内容区2
内容区3
内容区4

用例和功能

设计和用户体验要点

  1. 在滚动 10px 时触发:玻璃态射出现在中性时间。

  2. 填充变化:从“1.25rem”减少到“0.75rem”,使其更加紧凑并确保更广泛的内容区域。

  3. 通过**过渡**进行平滑:通过同时过渡背景、模糊、框阴影和填充这四个属性来创建自然变化。

如何定制

更改滚动开始阈值:


// 提前触发 (5px)

if (demo.scrollTop > 5) { ... }



// 稍后触发 (50px)

if (demo.scrollTop > 50) { ... }

添加链接:


<li><a href="#services">服务</a></li>

<li><a href="#blog">博客</a></li>

实现代码

<nav class="snav-bar" id="sticky-nav">

<div class="snav-logo">BRAND</div>

<ul class="snav-links">

  <li><a href="#">Home</a></li>

  <li><a href="#">About</a></li>

  <li><a href="#">Work</a></li>

</ul>

<button class="snav-cta">Contact</button>

</nav>



<style>
.snav-bar {

position: sticky;

top: 0;

z-index: 100;

width: 100%;

box-sizing: border-box;

padding: 1.25rem 2rem;

display: flex;

align-items: center;

justify-content: space-between;

gap: 1.5rem;

transition: background 0.3s ease, backdrop-filter 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;

}

.snav-bar.scrolled {

background: rgba(15,23,42,0.75);

backdrop-filter: blur(16px);

box-shadow: 0 1px 0 rgba(255,255,255,0.08), 0 8px 32px rgba(0,0,0,0.4);

padding: 0.75rem 2rem;

}
</style>



<script>

window.addEventListener('scroll', function() {

var nav = document.getElementById('sticky-nav');

if (window.scrollY > 10) nav.classList.add('scrolled');

else nav.classList.remove('scrolled');

});

</script>

浏览器兼容性状态

|浏览器 |兼容性状态 |

|--------|--------|

| Chrome 76+ | ✅ 完全兼容 |

|火狐 103+ | ✅ 兼容 |

| Safari 9+ | ✅ 完全兼容 |

|边缘 79+ | ✅ 完全兼容 |

一些较旧的浏览器不支持 backdrop-filter,但是 background: rgba(...) 的半透明背景足以作为后备。