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

导航栏下拉菜单展开时如何模糊背景?

实现悬停导航栏时背景模糊的下拉菜单

以下是完整实现代码,包含背景图添加和背景模糊效果:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>导航栏模糊背景示例</title>
    <style>
        /* 重置默认样式 */
        * {
            margin: 0;
            padding: 0;
            list-style: none;
            text-decoration: none;
        }

        /* 背景图容器 */
        .bg-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image: url('你的背景图片路径'); /* 替换为你自己的背景图路径 */
            background-size: cover;
            background-position: center;
            z-index: -2;
        }

        /* 模糊覆盖层 - 默认隐藏 */
        .blur-overlay {
            position: fixed;
            top: 5rem; /* 与导航栏高度保持一致 */
            left: 0;
            width: 100%;
            height: calc(100% - 5rem);
            backdrop-filter: blur(8px); /* 调整数值改变模糊程度 */
            -webkit-backdrop-filter: blur(8px); /* 兼容webkit内核浏览器 */
            z-index: -1;
            opacity: 0;
            transition: opacity 0.3s ease;
            pointer-events: none; /* 不干扰下层元素交互 */
        }

        /* 导航栏样式 */
        nav {
            display: flex;
            width: 100%;
            height: 5rem;
            background-color: rgba(255, 255, 255, 0.9); /* 导航栏半透明白色背景,增强可读性 */
            align-items: center;
            position: relative;
            z-index: 100;
        }

        .nav-list {
            display: flex;
            width: 100%;
            padding-left: 1.5rem;
        }

        .nav-list li {
            line-height: 5rem; /* 与导航栏高度保持一致 */
            position: relative;
        }

        .nav-list > li > a {
            color: black;
            display: block;
            font-size: 1rem;
            padding: 0 1rem;
            transition: color 0.3s ease;
        }

        .nav-list > li:hover > a {
            color: #d93025;
        }

        /* 下拉菜单样式 */
        .sub-menu {
            position: absolute;
            background-color: red;
            visibility: hidden;
            opacity: 0;
            box-sizing: border-box;
            z-index: 500; /* 高于模糊覆盖层,确保下拉菜单不被模糊 */
            transition: opacity 0.3s ease, top 0.3s ease;
            top: 6rem;
            padding: 1rem 0;
            min-width: 120px;
        }

        .sub-menu a {
            color: #ffffff;
            font-size: 1.1rem;
            display: block;
            padding: 0.8rem 1.5rem;
            transition: background-color 0.3s ease;
        }

        .sub-menu a:hover {
            background-color: #b3241c;
        }

        /* 悬停时触发下拉菜单和模糊层显示 */
        .nav-list li:hover > .sub-menu {
            top: 5rem; /* 让下拉菜单紧贴导航栏底部 */
            visibility: visible;
            opacity: 1;
        }

        .nav-list li:hover ~ .blur-overlay,
        .nav-list li:hover .blur-overlay {
            opacity: 1;
        }
    </style>
</head>
<body>
    <div class="bg-container"></div>
    <nav>
        <ul class="nav-list">
            <li>
                <a href="">Test</a>
                <ul class="sub-menu">
                    <li><a href="#">1</a></li>
                    <li><a href="#">2</a></li>
                    <li><a href="#">3</a></li>
                </ul>
            </li>
            <li>
                <a href="">Menu 2</a>
                <ul class="sub-menu">
                    <li><a href="#">Item A</a></li>
                    <li><a href="#">Item B</a></li>
                </ul>
            </li>
        </ul>
    </nav>
    <div class="blur-overlay"></div>
</body>
</html>

关键实现说明:

  1. 背景图容器:使用固定定位覆盖整个视口,层级设为最低,确保它在所有内容下方,可替换背景图路径为自己的资源。
  2. 模糊覆盖层:
    • 默认透明隐藏,悬停导航项时切换为不透明状态
    • 通过backdrop-filter实现背景模糊效果,添加前缀兼容主流浏览器
    • 设置pointer-events: none避免干扰页面其他元素的点击交互
    • 高度自适应为视口高度减去导航栏高度,仅模糊导航栏下方区域
  3. 导航栏与下拉菜单:
    • 导航栏设置较高层级,保证在模糊层之上
    • 下拉菜单层级高于模糊层,确保自身不会被模糊效果影响
    • 给下拉菜单添加过渡动画,让显示/隐藏过程更平滑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:15:39