0

0

响应式导航高亮滚动效果:仅在屏幕宽度大于750px时启用

聖光之護

聖光之護

发布时间:2026-02-08 11:12:20

|

771人浏览过

|

来源于php中文网

原创

响应式导航高亮滚动效果:仅在屏幕宽度大于750px时启用

本文介绍如何为bootstrap导航栏的动态高亮条添加响应式控制,确保滑动高亮动画仅在桌面端(屏幕宽度 > 750px)生效,并在窗口缩放时实时启停,避免移动端误触发。

要实现导航菜单高亮条的“仅在大屏启用滚动定位功能”,关键在于动态监听视口宽度变化,而非仅在页面加载时做一次判断。原代码中使用 $(document).width() 在 $(document).ready() 中静态检测,导致窗口缩放后状态无法同步——这是典型的响应式交互遗漏。

✅ 正确做法:用 window.innerWidth + resize 实时判断

window.innerWidth 返回当前视口的像素宽度(含滚动条),比 jQuery 的 $(document).width() 更准确、无依赖,且原生性能更优。我们应将核心逻辑封装为可开关的函数,并在初始化和每次 resize 时重新校验条件:

魔珐星云
魔珐星云

无需昂贵GPU,一键解锁超写实/二次元等多风格3D数字人,跨端适配千万级并发的具身智能平台。

下载
$(document).ready(function() {
  let isDesktop = window.innerWidth > 750;
  let highlightActive = false;

  // 核心高亮更新函数(带条件执行)
  function updateActiveHighlight(init = false, skipTransition = false) {
    if (!isDesktop) return; // ❗ 非桌面端直接退出,不执行任何DOM操作

    const navTabs = $('.nav-tabs');
    const activeTab = navTabs.find('.active > a'); // 注意:.active 在  上,非 
  • if (activeTab.length === 0) return; const navOffset = navTabs.offset(); const tabOffset = activeTab.offset(); const pos = { x: tabOffset.left - navOffset.left, y: tabOffset.top - navOffset.top, w: activeTab.outerWidth(), h: activeTab.outerHeight() }; let highlight = navTabs.find('.active-highlight'); if (init && highlight.length === 0) { navTabs.prepend('
  • '); highlight = navTabs.find('.active-highlight'); } if (skipTransition) { highlight.css('transition', 'none'); setTimeout(() => highlight.css('transition', 'all .5s ease'), 10); } highlight.css({ width: pos.w, height: pos.h, left: pos.x, top: pos.y }); } // 初始化(仅桌面) if (isDesktop) { updateActiveHighlight(true); } // 监听窗口缩放:动态切换状态 & 更新高亮 $(window).on('resize', function() { const newIsDesktop = window.innerWidth > 750; if (newIsDesktop !== isDesktop) { isDesktop = newIsDesktop; if (isDesktop) { // 切回桌面:立即初始化或恢复高亮 updateActiveHighlight(true); } else { // 切入移动端:移除高亮元素(可选,提升语义清晰度) $('.nav-tabs .active-highlight').remove(); } } else if (isDesktop) { // 仍在桌面区间:仅更新位置(如tab切换后缩放需重算) updateActiveHighlight(false, true); } }); // Tab切换时更新(仅桌面生效) $('[data-bs-toggle="tab"]').on('shown.bs.tab', function() { if (isDesktop) { updateActiveHighlight(); } }); });

    ⚠️ 注意事项与优化点

    ✅ 最终效果

    • 屏幕 ≥ 751px:高亮条平滑跟随激活 Tab 滑动,支持 Tab 切换与窗口缩放自适应;
    • 屏幕 ≤ 750px:完全静默,无高亮元素、无事件绑定、零性能开销;
    • 任意尺寸切换(拖拽浏览器边框):无需刷新,即时响应,行为一致可靠。

    通过将响应式逻辑深度融入生命周期(初始化 → resize 监听 → 状态同步 → 条件执行),即可优雅解决“仅大屏启用”的需求,兼顾健壮性与可维护性。

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    jquery插件有哪些
    jquery插件有哪些

    jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

    152

    2023.09.12

    jquery怎么操作json
    jquery怎么操作json

    操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

    314

    2023.10.13

    jquery删除元素的方法
    jquery删除元素的方法

    jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    402

    2023.11.10

    jQuery hover()方法的使用
    jQuery hover()方法的使用

    hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

    508

    2023.12.04

    jquery实现分页方法
    jquery实现分页方法

    在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

    228

    2023.12.06

    jquery中隐藏元素是什么
    jquery中隐藏元素是什么

    jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    123

    2024.02.23

    jquery中什么是高亮显示
    jquery中什么是高亮显示

    jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    178

    2024.02.23

    jQuery 正则表达式相关教程
    jQuery 正则表达式相关教程

    本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

    47

    2026.01.13

    Golang处理数据库错误教程合集
    Golang处理数据库错误教程合集

    本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

    39

    2026.02.06

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 0.8万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 3.2万人学习

    CSS教程
    CSS教程

    共754课时 | 28.9万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号