增补博客 第十五篇 python大作业小说阅读器(4)html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /* 添加样式,可以根据需要进行调整 */
        body {
            font-family: Arial, sans-serif; /* 设置字体 */
            background-color: #f0f0f0; /* 设置背景颜色 */
            color: #333; /* 设置文字颜色 */
            display: flex;
            flex-direction: column; /* Set to column to stack elements vertically */
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }

        .chapter-list {
            margin-bottom: 20px; /* 设置章节列表的外边距 */
        }

        .chapter-link {
            display: block; /* 将章节链接显示为块元素,方便点击 */
            margin-bottom: 5px; /* 设置章节链接之间的间距 */
        }
    </style>
</head>

<body>
<!-- 显示书籍标题 -->
<h1>{{ book_title1 }}</h1>

<!-- 遍历字典中的章节名和内容,并显示在页面上 -->
<div class="chapter-list">
    {% for chapter_name, content in book2.items() %}
    <div class="chapter-link" id="chapter{{ loop.index }}"
         style="display: {% if loop.index == 1 %}block{% else %}none{% endif %}; overflow-y: scroll; max-height: 400px;">
        <h3>{{ chapter_name }}</h3>
        <p>{{ content }}</p>
    </div>
    {% endfor %}
</div>


<div class="Readpage pagedown">

    <!-- 上一章按钮 -->
    <button onclick="prevChapter()">上一章</button>

    <!-- 更换背景颜色按钮 -->
    <button onclick="changeBgColor()">更换背景颜色</button>

    <!-- 目录按钮 -->
    <button onclick="mulu()">目录</button>


    <!-- 更换字体按钮 -->
    <button onclick="changeFont()">更换字体</button>

    <!-- 下一章按钮 -->
    <button onclick="nextChapter()">下一章</button>

</div>

<script>
    // JavaScript 代码段
    var currentChapter = 1; // 当前章节

    function nextChapter() {
        var currentChapterDiv = document.getElementById('chapter' + currentChapter);
        currentChapterDiv.style.display = 'none'; // 隐藏当前章节内容
        currentChapter++; // 更新当前章节
        var nextChapterDiv = document.getElementById('chapter' + currentChapter);
        if (nextChapterDiv) {
            nextChapterDiv.style.display = 'block'; // 显示下一章节内容
        } else {
            currentChapter--; // 如果已经到达最后一章,则恢复当前章节为最后一章
        }
    }

    function prevChapter() {
        var currentChapterDiv = document.getElementById('chapter' + currentChapter);
        currentChapterDiv.style.display = 'none'; // 隐藏当前章节内容
        currentChapter--; // 更新当前章节
        var prevChapterDiv = document.getElementById('chapter' + currentChapter);
        if (prevChapterDiv) {
            prevChapterDiv.style.display = 'block'; // 显示上一章节内容
        } else {
            currentChapter++; // 如果已经到达第一章,则恢复当前章节为第一章
        }
    }

    // 更换背景颜色功能
    function changeBgColor() {
        var body = document.body; // 获取<body>元素
        var colors = ['#ffffff', '#000000', '#00ff00']; // 定义背景颜色数组,分别是纯白、纯黑和纯绿
        var randomColor = colors[Math.floor(Math.random() * colors.length)]; // 随机选择一个颜色
        body.style.backgroundColor = randomColor; // 设置背景颜色
    }

    // 更换字体功能
    function changeFont() {
        var body = document.body; // 获取<body>元素
        var fonts = ['宋体, SimSun', '楷体, KaiTi', '行书, STXingkai']; // 定义字体样式数组
        var randomFont = fonts[Math.floor(Math.random() * fonts.length)]; // 随机选择一个字体样式
        body.style.fontFamily = randomFont; // 设置字体样式
    }

    function mulu() {
        var chapters = document.querySelectorAll('.chapter-link');
        chapters.forEach(function (chapter) {
            chapter.style.display = 'block'; // 显示所有章节名称
            chapter.querySelector('p').style.display = 'none'; // 隐藏章节内容
            chapter.addEventListener('click', function () {
                var chapterIndex = parseInt(this.id.match(/\d+/)[0]); // 获取点击的章节索引
                showChapter(chapterIndex); // 调用显示章节内容的函数
            });
        });
    }

    function showChapter(chapterIndex) {
        var chapters = document.querySelectorAll('.chapter-link');
        chapters.forEach(function (chapter) {
            var index = parseInt(chapter.id.match(/\d+/)[0]);
            if (index === chapterIndex) {
                chapter.style.display = 'block'; // 显示当前章节名称
                chapter.querySelector('p').style.display = 'block'; // 显示当前章节内容
            } else {
                chapter.style.display = 'none'; // 隐藏其他章节
                chapter.querySelector('p').style.display = 'none'; // 隐藏其他章节内容
            }
        });
    }
</script>

</body>
</html>

  

posted @ 2024-06-14 12:24  财神给你送元宝  阅读(10)  评论(0编辑  收藏  举报