当前位置: 首页 > news >正文

HTML左右分页2【搬代码】

HTML左右分页2

html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>左右分页布局</title>
    <link rel="stylesheet" href="style.css"></link>
</head>

<body>
    <!-- 左侧导航栏 -->
    <div id="left-nav">
        <!-- 第一个下拉框 -->
        <div class="dropdown">
            <button class="dropdown-btn">菜单 1</button>
            <ul class="dropdown-content">
                <li data-content="content1">子菜单 1-1</li>
                <li data-content="content2">子菜单 1-2</li>
            </ul>
        </div>
        <!-- 第二个下拉框 -->
        <div class="dropdown">
            <button class="dropdown-btn">菜单 2</button>
            <ul class="dropdown-content">
                <li data-content="content3">子菜单 2-1</li>
                <li data-content="content4">子菜单 2-2</li>
            </ul>
        </div>
    </div>
    <!-- 右侧内容区域 -->
    <div id="right-content">
        <!-- 顶部操作栏 -->
        <div id="top-bar">
            <!-- 隐藏导航栏按钮 -->
            <button id="toggle-nav"></button>
            <!-- 右上角个人中心图标 -->
            <span id="profile-icon">👤</span>
        </div>
        <!-- 内容显示区域 -->
        <div id="content-area">
            <div id="content1" class="show">
                <div class="content1-child">这是 content1 里的第一个子 div 内容</div>
                <div class="content1-child">这是 content1 里的第二个子 div 内容</div>
            </div>
            <div id="content2" class="hide">
                <div class="content2-child">这是 content2 里的第一个子 div 内容</div>
                <div class="content2-child">这是 content2 里的第二个子 div 内容</div>
            </div>
            <div id="content3" class="hide">
                <div class="content3-child">这是 content3 里的第一个子 div 内容</div>
                <div class="content3-child">这是 content3 里的第二个子 div 内容</div>
            </div>
            <div id="content4" class="hide">
                <div class="content4-child">这是 content4 里的第一个子 div 内容</div>
                <div class="content4-child">这是 content4 里的第二个子 div 内容</div>
            </div>
        </div>
    </div>
</body>
<script src="script.js"></script>
</html>

css

<style>
/* 整体页面样式 */
body {
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
    display: flex;
    height: 100vh;
}

/* 左侧导航栏样式 */
#left-nav {
    position: fixed;
    width: 200px;
    height: 100vh;
    background-color: #333;
    color: white;
    padding-top: 20px;
    transition: width 0.3s ease;
    overflow-y: auto;
}

/* 隐藏左侧导航栏时的样式 */
#left-nav.hidden {
    width: 0;
    overflow: hidden;
}

/* 导航栏下拉框样式 */
.dropdown {
    position: relative;
    display: block;
}

/* 下拉框按钮样式 */
.dropdown-btn {
    background-color: #333;
    color: white;
    padding: 10px;
    width: 100%;
    border: none;
    text-align: left;
    cursor: pointer;
}

/* 下拉框内容样式 */
.dropdown-content {
    display: none;
    position: relative;
    background-color: #444;
    width: 100%;
}

/* 下拉框内容列表项样式 */
.dropdown-content li {
    padding: 10px;
    cursor: pointer;
}

/* 下拉框内容列表项悬停样式 */
.dropdown-content li:hover {
    background-color: #555;
}

/* 右侧内容区域样式 */
#right-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-left: 200px; /* 留出左侧导航栏的空间 */
}

/* 顶部操作栏样式 */
#top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px;
    background-color: #f0f0f0;
}

/* 隐藏导航栏按钮样式 */
#toggle-nav {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
}

/* 右上角个人中心图标样式 */
#profile-icon {
    font-size: 20px;
    cursor: pointer;
}

/* 内容显示区域样式 */
#content-area {
    padding: 20px;
    overflow-y: auto;
}

/* 内容区域显示与隐藏类 */
.show {
    display: flex;
    justify-content: space-around;
}

.hide {
    display: none;
}

/* content1 内子 div 样式 */
.content1-child {
    background-color: lightblue;
    padding: 10px;
    margin: 5px;
    flex: 1;
}

/* content2 内子 div 样式 */
.content2-child {
    background-color: lightgreen;
    padding: 10px;
    margin: 5px;
    flex: 1;
}

/* content3 内子 div 样式 */
.content3-child {
    background-color: lightcoral;
    padding: 10px;
    margin: 5px;
    flex: 1;
}

/* content4 内子 div 样式 */
.content4-child {
    background-color: lightyellow;
    padding: 10px;
    margin: 5px;
    flex: 1;
}
</style>

script

<script>
 // 获取左侧导航栏元素
 const leftNav = document.getElementById('left-nav');
 // 获取切换导航栏按钮元素
 const toggleNav = document.getElementById('toggle-nav');
 // 获取所有下拉框按钮元素
 const dropdownBtns = document.querySelectorAll('.dropdown-btn');
 // 获取导航栏所有列表项元素
 const navItems = document.querySelectorAll('.dropdown-content li');
 // 获取所有内容区域元素
 const contents = document.querySelectorAll('#content-area > div');

 // 为切换导航栏按钮添加点击事件监听器
 toggleNav.addEventListener('click', () => {
     leftNav.classList.toggle('hidden');
     if (leftNav.classList.contains('hidden')) {
         document.getElementById('right-content').style.marginLeft = '0';
     } else {
         document.getElementById('right-content').style.marginLeft = '200px';
     }
 });

 // 为下拉框按钮添加点击事件监听器
 dropdownBtns.forEach(btn => {
     btn.addEventListener('click', () => {
         const dropdownContent = btn.nextElementSibling;
         dropdownContent.style.display = dropdownContent.style.display === 'block' ? 'none' : 'block';
     });
 });

 // 为导航栏列表项添加点击事件监听器
 navItems.forEach(item => {
     item.addEventListener('click', () => {
         // 获取点击列表项对应的内容 ID
         const contentId = item.dataset.content;
         console.log(`点击了 ${item.textContent},对应的内容 ID 是 ${contentId}`);

         // 隐藏所有内容区域
         contents.forEach(content => {
             content.classList.add('hide');
             content.classList.remove('show');
         });

         // 显示点击列表项对应的内容区域
         const selectedContent = document.getElementById(contentId);
         if (selectedContent) {
             selectedContent.classList.add('show');
             selectedContent.classList.remove('hide');
             console.log(`显示内容区域 ${contentId}`);
         } else {
             console.error(`未找到 ID 为 ${contentId} 的内容区域`);
         }
     });
 });

 // 获取个人中心图标元素
 const profileIcon = document.getElementById('profile-icon');
 // 为个人中心图标添加点击事件监听器
 profileIcon.addEventListener('click', () => {
     // 这里可以添加进入个人中心的逻辑,例如跳转到个人中心页面
     alert('进入个人中心');
 });
</script>
http://www.dtcms.com/a/61416.html

相关文章:

  • labview实现16进制数据相加取反,取低16位校验
  • 【JavaEE】线程池
  • 人工智能的发展历史
  • OSPF-单区域的配置
  • Python 入
  • (openstack搭建)openstack云平台部署-详细完整教程
  • 【每日学点HarmonyOS Next知识】对话框去掉圆角、数组拼接、自定义对话框依附某个控件、平移动画、页面栈管理
  • (二)企业级监控系统 - ZABBIX 部署
  • STM32-SPI通信协议
  • Visual Studio Code 基本使用指南
  • Ultravox:融合whisper+llama实现audio2text交互
  • 三维仿射变换矩阵
  • 安裝do時出現log file support is not available
  • 【软件测试开发】:软件测试常用函数1.0(C++)
  • 『PostgreSQL』 Ubuntu 系统下PG15的安装与 PGVector 配置指南
  • 在本地部署DeepSeek等大模型时,需警惕的潜在安全风险
  • MongoDB 副本集的健康指标 写关注级别
  • 智谱AI开源CogView4,支持中英文,性能比肩flux!
  • 用Nutch库的HTTP请求写个万能下载程序
  • Spark(8)配置Hadoop集群环境-使用脚本命令实现集群文件同步
  • 时序数据库TimescaleDB基本操作示例
  • 米尔电子-LR3568-烧录鸿蒙
  • 倒排索引(Inverted Index)
  • 【从二维到一维:动态规划——01背包完全背包的空间优化之路】—— 经典例题解答,将问题转化为背包问题
  • 在线json转ArkTs-harmonyos
  • 《 YOLOv5、YOLOv8、YOLO11训练的关键文件:data.yaml文件编写全解》
  • 再聊 Flutter Riverpod ,注解模式下的 Riverpod 有什么特别之处,还有发展方向
  • Java集合_八股场景题
  • C# backgroundworker类
  • [20250304] 关于 RISC-V芯片 的介绍