HTML文章翻页功能

news2025/1/17 23:56:12

效果展示:

效果原理:

1、引入CDN

2、绘制文章翻页样式,以及自动分段

3、获取窗口宽高,计算出当前文章总分段,并实现分页

4、完整代码

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <!-- 移动端适配 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- 引入VUE CDN -->
	<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
	<!-- 引入el样式 -->
	<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
	<!-- 引入el组件库 -->
	<script src="https://unpkg.com/element-ui/lib/index.js"></script>


    <!-- 引入VUE CDN , 如果cdn不可用 建议下载cdn文件到本地调用
    <script src="./utils/vue@2.js"></script>
    <link rel="stylesheet" href="./utils/elemnt.css">
    <script src="./utils/element.js"></script>
    -->


    <title>html_文章翻页功能</title>
</head>
<style>
    #app{
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.1);
        overflow: hidden;
    }
    /** 1、窗口区设置屏幕区域大小 */
    section {
        box-sizing: border-box;
        width: 360px;
        height: 500px;
        border: 1px solid red;
        margin: 0 auto;
        background-color: #fff;
        padding: 20px 16px;
        position: relative;
    }

    /**2、 分页在窗口区域绝对定位 */
    .page-box {
        width: 100%;
        position: absolute;
        left: 0;
        bottom: 5px;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 999;


    }

    .prev-btn {
        width: 24px;
        height: 24px;
        border-radius: 3px 3px 3px 3px;
        border: 1px solid;
        margin: 0 20px;
        text-align: center;
    }

    .next-btn {
        width: 24px;
        height: 24px;
        border-radius: 3px 3px 3px 3px;
        border: 1px solid;
        margin: 0 20px;
        text-align: center;
    }

    /** 
    3、 内容区域 宽高100% columns 实现分栏 
    columns  进行分段,column-gap 设置间距
     columns 列的宽度 控制列数
    设置transition 过度效果
    分页就是通过 transition 偏移实现
*/
    #article {
        width: 100%;
        columns: 1;
        column-gap: 20px;
        height: 100%;
        word-break: break-word;
        transition: .5s;
    }

    h3 {
        text-align: center;
    }
</style>

<body>
    <div id="app">

        <div class="app-container home">
            <!-- 窗口区 -->
            <section class="section">
                <!-- 文章内容区 -->
                <article id="article">
                    <div class="content">
                        <h3>《中华人民共和国网络安全法》</h3>
                        <div class="content-p">
                            第一章 总则
                            第一条 为保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展,制定本法。

                            第二条 在中华人民共和国境内建设、运营、维护和使用网络,以及网络安全的监督管理,适用本法。

                            第三条
                            国家坚持网络安全与信息化发展并重,遵循积极利用、科学发展、依法管理、确保安全的方针,推进网络基础设施建设和互联互通,鼓励网络技术创新和应用,支持培养网络安全人才,建立健全网络安全保障体系,提高网络安全保护能力。

                            第四条 国家制定并不断完善网络安全战略,明确保障网络安全的基本要求和主要目标,提出重点领域的网络安全政策、工作任务和措施。

                            第五条 国家采取措施,监测、防御、处置来源于中华人民共和国境内外的网络安全风险和威胁,保护关键信息基础设施免受攻击、侵入、干扰和破坏,依法惩治网络违法犯罪活动,维护网络空间安全和秩序。

                            第六条 国家倡导诚实守信、健康文明的网络行为,推动传播社会主义核心价值观,采取措施提高全社会的网络安全意识和水平,形成全社会共同参与促进网络安全的良好环境。

                            第七条 国家积极开展网络空间治理、网络技术研发和标准制定、打击网络违法犯罪等方面的国际交流与合作,推动构建和平、安全、开放、合作的网络空间,建立多边、民主、透明的网络治理体系。

                            第八条
                            国家网信部门负责统筹协调网络安全工作和相关监督管理工作。国务院电信主管部门、公安部门和其他有关机关依照本法和有关法律、行政法规的规定,在各自职责范围内负责网络安全保护和监督管理工作。

                            第九条 网络运营者开展经营和服务活动,必须遵守法律、行政法规,尊重社会公德,遵守商业道德,诚实信用,履行网络安全保护义务,接受政府和社会的监督,承担社会责任。

                            第十条
                            建设、运营网络或者通过网络提供服务,应当依照法律、行政法规的规定和国家标准的强制性要求,采取技术措施和其他必要措施,保障网络安全、稳定运行,有效应对网络安全事件,防范网络违法犯罪活动,维护网络数据的完整性、保密性和可用性。

                            第十一条 网络相关行业组织按照章程,加强行业自律,制定网络安全行为规范,指导会员加强网络安全保护,提高网络安全保护水平,促进行业健康发展。

                            第十二条 国家保护公民、法人和其他组织依法使用网络的权利,促进网络接入普及,提升网络服务水平,为社会提供安全、便利的网络服务,保障网络信息依法有序自由流动。

                            任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他合法权益等活动。

                            第十三条 国家支持研究开发有利于未成年人健康成长的网络产品和服务,依法惩治利用网络从事危害未成年人身心健康的活动,为未成年人提供安全、健康的网络环境。

                            第十四条 任何个人和组织有权对危害网络安全的行为向网信、电信、公安等部门举报。收到举报的部门应当及时依法作出处理;不属于本部门职责的,应当及时移送有权处理的部门。

                            有关部门应当对举报人的相关信息予以保密,保护举报人的合法权益。

                            第二章 网络安全支持与促进
                            第十五条
                            国家建立和完善网络安全标准体系。国务院标准化行政主管部门和国务院其他有关部门根据各自的职责,组织制定并适时修订有关网络安全管理以及网络产品、服务和运行安全的国家标准、行业标准。

                            国家支持企业、研究机构、高等学校、网络相关行业组织参与网络安全国家标准、行业标准的制定。

                            第十六条
                            国务院和省、自治区、直辖市人民政府应当统筹规划,加大投入,扶持重点网络安全技术产业和项目,支持网络安全技术的研究开发和应用,推广安全可信的网络产品和服务,保护网络技术知识产权,支持企业、研究机构和高等学校等参与国家网络安全技术创新项目。

                            第十七条 国家推进网络安全社会化服务体系建设,鼓励有关企业、机构开展网络安全认证、检测和风险评估等安全服务。

                            第十八条 国家鼓励开发网络数据安全保护和利用技术,促进公共数据资源开放,推动技术创新和经济社会发展。

                            国家支持创新网络安全管理方式,运用网络新技术,提升网络安全保护水平。

                            第十九条 各级人民政府及其有关部门应当组织开展经常性的网络安全宣传教育,并指导、督促有关单位做好网络安全宣传教育工作。

                            大众传播媒介应当有针对性地面向社会进行网络安全宣传教育。

                        </div>

                    </div>
                </article>

                <!-- 分页 -->
                <div class="page-box">
                    <div class="prev-btn" @click="changePage(0)"> 《 </div>
                    <span>{{ pageCurrent + 1 }}</span>
                    <div class="next-btn" @click="changePage(1)"> 》</div>
                </div>
            </section>
        </div>

    </div>
    <script>
        /* 实例化vue */
        var app = new Vue({
            el: '#app',
            data: {
                screenWidth: 0,//内容区域宽度
                screenHeight: 0,//内容区域高度
                totalHeight: 0,//内容总长度
                pageCurrent: 0,//当前页数
                pageTotal: 0,//总页数

            },
            mounted() {
                this.getArticleInit()
            },
            methods: {
                /** 1、初始化时加载屏幕宽高,内容总长度 */
                getArticleInit() {
                    // (1)获取 article 元素宽高作为可视宽高
                    const aEvent = document.querySelector('#article') //获取元素可视区域
                    const aWidth = aEvent.clientWidth + 20 // 获取元素宽度 + 间距宽度
                    const aHeight = aEvent.clientHeight // 获取元素高度
                    console.log('--可视内容宽高--', aWidth, aHeight)

                    //(2)获取 article 元素 下的div 获取全文高度,用于实现分页
                    const ctEvent = document.querySelector('.content') //获取元素可视区域
                    const ctHeight = ctEvent.clientHeight // 获取文章内容总高度
                    const ctPage = Math.ceil(ctHeight / aHeight) //向上取整,获取最大页数
                    console.log('--内容总长与分页数--', ctHeight, ctPage)

                    this.screenWidth = aWidth
                    this.screenHeight = aHeight
                    this.totalHeight = ctHeight
                    this.pageTotal = ctPage

                    /**
                    * clientWidth和clientHeight
                    * clientWidth=width(样式中设置的)+左padding+右padding-垂直滚动条宽度。
                    * clientHeight=height+顶部padding+底部padding-水平滚动条宽度。
                    * 
                    * offsetWidth和offsetHeight
                    * offsetWidth=width(样式中设置的)+左右padding+左右border
                      offsetHeight=height(样式中设置的)+上下padding+上下border
                    */
                },

                /** 2、点击分页时 元素通过transform-translate 偏移  */
                changePage(type = 0) {
                    const aEvent = document.querySelector('#article') //获取元素
                    let page = this.pageCurrent
                    let total = this.pageTotal
                    let aWidth = this.screenWidth
                    /** (1) 下一页 -- 小于总页数才可下一页 */
                    if (type) {
                        if (page >= total - 1) return
                        page++
                        let tempWidth = aWidth * page
                        aEvent.style.transform = `translateX(-${tempWidth}px) `
                        this.pageCurrent = page
                        return
                    }
                    /** (1) 上一页 -- 当前页数大于1才行 */
                    if (page > 0) {
                        page--
                        let tempWidth = aWidth * page
                        aEvent.style.transform = `translateX(-${tempWidth}px) `
                        this.pageCurrent = page
                    }
                }
            }
        })
    </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2278210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jenkins-node节点配置

一.简述&#xff1a; Jenkins有一个很强大的功能&#xff1a; 即&#xff1a;支持分布式构建(jenkins配置中叫节点(node),也被称为slave)。分布式构建通常是用来吸收额外的负载。通过动态添加额外的机器应对构建作业中的高峰期&#xff0c;或在特定操作系统或环境运行特定的构建…

网络分析仪测试S参数

S参数的测试 一&#xff1a;S参数的定义 S参数&#xff08;Scattering Parameters&#xff0c;散射参数&#xff09;是一个表征器件在射频信号激励下的电气行为的工具&#xff0c;它以输入信号、输出信号为元素的矩阵来表现DUT的“传输”和“散射”效应&#xff0c;输入、输出…

【数据结构高阶】B-树

目录 一、常见的搜索结构 二、B树 2.1 B树的概念 2.2 B树插入数据的分析 2.3 B树的性能分析 2.4 模拟实现B树 2.4.1 B树节点的定义 2.4.2 B树数据的查找 2.4.3 B树节点的数据插入 2.4.4 B树的遍历 2.4.5 模拟实现B树实现的完整代码 三、B树 3.1 B树的概念 3.2 B树…

Linux 服务器挖矿木马防护实战:快速切断、清理与加固20250114

Linux 服务器挖矿木马防护实战&#xff1a;快速切断、清理与加固 引言 挖矿木马作为一种常见的恶意软件&#xff0c;对服务器资源和安全构成严重威胁。据安全机构统计&#xff0c;2023 年全球约 45%的 Linux 服务器遭受过挖矿木马攻击&#xff0c;平均每台被感染服务器每月造…

015: 深度学习之正向传播和反向传播

本文为合集收录&#xff0c;欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 上一节介绍了训练和推理的概念&#xff0c;这一节接着训练和推理的概念讲一下&#xff0c;神经网络的正向传播和反向传播。 正反向传播 其实单看正向传播和反向传播这两个…

梁山派入门指南2——滴答定时器位带操作按键输入(包括GPIO中断)

梁山派入门指南2——滴答定时器&位带操作&按键输入 1. 滴答定时器1.1 滴答定时器简介1.2 相关寄存器1.3 固件库函数 2. 位带操作2.1 位带操作介绍2.2 位带操作的优势2.3 支持位带操作的内存地址2.4 位带别名区地址的计算方式2.5 位带操作使用示例 3 按键输入3.1 独立按…

安全类脚本:拒绝ssh暴力破解

要求如下&#xff1a; 一个小时内&#xff0c;连续密码错误4次。 Linux lastb 命令用于列出登入系统失败的用户相关信息。 实验过程如下&#xff1a; 1. 创建两个IP地址不同的干净环境&#xff0c;分别是&#xff1a;192.168.46.101 Rocky 2 和 192.168.46.120 openEuler 2. 2.…

HugeGraph集群部署

部署HugeGraph集群 最近工作中&#xff0c;需要部署一个HugeGraph的多副本集群&#xff0c;要求一个主节点&#xff0c;两个从节点。由于HugeGraph官网并没有完整的搭建集群实例&#xff0c;所以这里写一篇文章记录自己搭建集群的过程&#xff0c;供自己和大家学习和参考。 注…

SqlSugar连接达梦数据库集群超时或异常缓慢

《SqlSugar配置连接达梦数据库集群》文章中介绍SqlSugar连接达梦数据库集群&#xff0c;只需按下图所示位置添加dm_svc.conf文件&#xff0c;并在SqlSugar的连接字符串中指定服务名即可。   但在使用过程中发现&#xff0c;基于.net 6开发的WebApi&#xff0c;编译为ANYCPU&…

Qt/C++进程间通信:QSharedMemory 使用详解(附演示Demo)

在开发跨进程应用程序时&#xff0c;进程间通信&#xff08;IPC&#xff09;是一个关键问题。Qt 框架提供了多种 IPC 技术&#xff0c;其中 QSharedMemory 是一种高效的共享内存方式&#xff0c;可以实现多个进程之间快速交换数据。本文将详细讲解 QSharedMemory 的概念、用法及…

STM32的集成开发环境STM32CubeIDE安装

STM32CubeIDE - STM32的集成开发环境 - 意法半导体STMicroelectronics

NanoKVM简单开箱测评和拆解,让普通电脑实现BMC/IPMI远程管理功能

Sipeed推出了NanoKVM&#xff0c;简直是没有BMC的台式机和工作站的福音。有了这个就可以轻松实现以往服务器才有的远程管理功能。 NanoKVM 简介 Lichee NanoKVM 是基于 LicheeRV Nano 的 IP-KVM 产品&#xff0c;继承了 LicheeRV Nano 的极致体积 和 强大功能。 NanoKVM 包含…

唐刘:TiDB 的 2024 - Cloud、SaaS 与 AI

2024 年已经过去&#xff0c;在去年我也写过两篇类似的文章&#xff0c;TiDB in 2023 - 一次简单的回顾和 TiDB Cloud in 2023 - 一次简单的回顾&#xff0c;这一次&#xff0c;我准备将 TiDB 和 cloud 一起写&#xff0c;一方面原因是我懒了&#xff0c;另外一个更重要的原因在…

Web端实时播放RTSP视频流(监控)

一、安装ffmpeg: 1、官网下载FFmpeg: Download FFmpeg 2、点击Windows图标,选第一个:Windows builds from gyan.dev 3、跳转到下载页面: 4、下载后放到合适的位置,不用安装,解压即可: 5、配置path 复制解压后的\bin路径,配置环境变量如图: <

Excel 技巧10 - 如何检查输入重复数据(★★)

本文讲了如何在Excel中通过COUNTIF来检查输入重复数据。 当输入重复数据时&#xff0c;显示错误提示。 1&#xff0c;通过COUNTIF来检查输入重复数据 比如下面是想检查不要输入重复的学号。 选中C列&#xff0c;点 Menu > 数据 > 数据验证 在数据验证页面&#xff0c…

IEC103 转 ModbusTCP 网关

一、产品概述 IEC103 转 ModbusTCP 网关型号 SG-TCP-IEC103 &#xff0c;是三格电子推出的工业级网关&#xff08;以下简 称网关&#xff09;&#xff0c;主要用于 IEC103 数据采集、 DLT645-1997/2007 数据采集&#xff0c; IEC103 支持遥测和遥 信&#xff0c;可接…

Unity3d 实时天气系统基于UniStorm插件和xx天气API实现(含源码)

前言 实时天气在Unity3d三维数字沙盘中的作用非常重要&#xff0c;它能够增强虚拟环境的真实感和互动性&#xff0c;实时天气数据的应用可以提供更为精准和直观的天气信息支持&#xff0c;如果真实的数据加上特效、声音和模型反馈会提高产品档次&#xff0c;提高真实感。 目前…

Linux命令行工具-使用方法

参考资料 Linux网络命令&#xff1a;网络工具socat详解-CSDN博客 arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别_aarch64-elf-gcc aarch64-linux-gnu-CSDN博客 解决Linux内核问题实用技巧之-dev/mem的新玩法-腾讯云开发者社区-腾讯云 热爱学习地派大星-CS…

【Flink系列】9. Flink容错机制

9. 容错机制 在Flink中&#xff0c;有一套完整的容错机制来保证故障后的恢复&#xff0c;其中最重要的就是检查点。 9.1 检查点&#xff08;Checkpoint&#xff09; 9.1.1 检查点的保存 1&#xff09;周期性的触发保存 “随时存档”确实恢复起来方便&#xff0c;可是需要我…

【深度学习】关键技术-激活函数(Activation Functions)

激活函数&#xff08;Activation Functions&#xff09; 激活函数是神经网络的重要组成部分&#xff0c;它的作用是将神经元的输入信号映射到输出信号&#xff0c;同时引入非线性特性&#xff0c;使神经网络能够处理复杂问题。以下是常见激活函数的种类、公式、图形特点及其应…