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

如何根据屏幕尺寸切换导航栏链接的跳转地址?

实现按屏幕尺寸切换导航链接的两种可行方法

方法一:纯CSS媒体查询(无需JS)

这种方法最简洁,直接通过CSS控制两个链接的显示/隐藏,不需要额外脚本:

HTML 结构

把两个链接都写在导航栏里,分别加专属类名区分:

<!-- 假设你的导航栏是ul结构 -->
<ul class="nav-bar">
  <!-- 移动端链接:屏幕<960px时显示 -->
  <li class="nav-link mobile-only"><a href="page/index.php?lang=en&id_item=2&num_months=2">Page</a></li>
  <!-- 桌面端链接:屏幕≥960px时显示 -->
  <li class="nav-link desktop-only"><a href="page/index.php?lang=en&id_item=2&num_months=5">Page</a></li>
</ul>

CSS 样式

通过媒体查询控制显示逻辑:

/* 默认显示桌面端链接,隐藏移动端 */
.nav-link.mobile-only {
  display: none;
}
.nav-link.desktop-only {
  display: block;
}

/* 屏幕宽度<960px时,切换显示移动端链接 */
@media (max-width: 959px) {
  .nav-link.mobile-only {
    display: block;
  }
  .nav-link.desktop-only {
    display: none;
  }
}

注意:这里用max-width:959px对应“屏幕<960px”的条件,避免和960px临界值冲突。


方法二:JavaScript 动态修改(支持窗口 resize 实时更新)

如果需要更灵活的控制(比如窗口大小改变时实时切换),可以用JS实现:

实现代码

<ul class="nav-bar">
  <!-- 预留一个空的li用来插入动态链接 -->
  <li id="dynamic-nav-item"></li>
</ul>

<script>
// 定义设置导航链接的函数
function setNavLink() {
  const navItem = document.getElementById('dynamic-nav-item');
  const isMobile = window.innerWidth < 960;
  // 根据屏幕尺寸选择对应的链接参数
  const numMonths = isMobile ? 2 : 5;
  const linkUrl = `page/index.php?lang=en&id_item=2&num_months=${numMonths}`;
  
  // 更新导航项内容
  navItem.innerHTML = `<a href="${linkUrl}">Page</a>`;
}

// 页面加载时初始化
window.addEventListener('load', setNavLink);

// 监听窗口大小变化,实时更新(加防抖避免频繁触发)
let resizeTimer;
window.addEventListener('resize', () => {
  clearTimeout(resizeTimer);
  resizeTimer = setTimeout(setNavLink, 200);
});
</script>

这个方法会在页面加载和窗口大小改变时,自动判断屏幕尺寸并更新链接地址,无需维护两个重复的li元素。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:15:34