You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery以vh替代px实现滚动导航栏淡入效果?

解决方案:用视窗高度替代固定px值触发导航栏淡入

当然可以!你完全可以通过jQuery获取浏览器视窗高度,来替代代码里固定的860px,实现滚动到100vh位置时触发导航栏的淡入效果。

核心思路

  • 用$(window).height()获取当前视窗的高度(这就是100vh对应的像素值)
  • 将这个动态获取的值替换原代码中的固定px数值
  • 可选:给scroll事件添加防抖处理,避免频繁触发函数影响页面性能

修改后的代码

(function($) {
  $(document).ready(function(){
    // 获取视窗高度,对应100vh
    let windowHeight = $(window).height();
    
    // 防抖函数,优化scroll事件性能
    let scrollTimeout;
    $(window).scroll(function(){
      clearTimeout(scrollTimeout);
      scrollTimeout = setTimeout(function() {
        if ($(this).scrollTop() > windowHeight) {
          $('#navbar').fadeIn(200);
        } else {
          $('#navbar').fadeOut(200);
        }
      }, 50); // 50ms的延迟可根据需求调整
    });

    // 监听窗口大小变化,实时更新视窗高度
    $(window).resize(function() {
      windowHeight = $(window).height();
    });
  });
})(jQuery);

关键说明

  • $(window).height()会获取当前浏览器窗口的高度,加上resize事件监听后,用户调整窗口大小时,视窗高度会自动同步更新,保证触发位置始终是100vh。
  • 防抖函数的作用是减少scroll事件的触发频率——浏览器的scroll事件会在滚动过程中多次触发,防抖能让函数只在滚动停止或暂停时执行,避免不必要的性能消耗。

内容的提问来源于stack exchange,提问作者Monti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:14:59