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

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.kler.cn/a/580716.html

相关文章:

  • NO.34十六届蓝桥杯备战函数十道练习|max|min|素数|完全数|素数对|素数回文数|真素数(C++)
  • fastapi+mysql实现增删改查
  • Flink深入浅出之04:时间、水印、TableSQL
  • 算法与数据结构(回文数)
  • 网易邮箱如何用大数据任务调度实现海量邮件数据处理?Apache DolphinScheduler用户交流会上来揭秘!
  • SpringMVC项目中,涉及到的各种请求
  • element-ui descriptions 组件源码分享
  • 多方安全计算(MPC)电子拍卖系统
  • 防火墙IPSec (无固定IP地址---一对多)
  • Redis- 大key
  • RK3588部署YOLOv8(2):OpenCV和RGA实现模型前处理对比
  • Linux权限维持之vim python 扩展后门(五)
  • Spring 中事务的实现
  • 推荐一款好用在线免费软件工具箱-传道软件箱
  • 框架基本知识总结 Day16
  • 垃圾收集算法与收集器
  • C 语 言 --- 数 组 (2)
  • 【前端】html+css+javascript实现联系我们表单
  • Java生成二维码并在二维码下添加文字,并导出为word
  • Nuxt.js 全栈开发指南:构建现代 Web 应用的终极解决方案