JS CSS HTML 的代码如何快速封装

我们为什么要封装代码,是因为封装后的代码,会显得非常美观,减少代码的复用,方便我们更好的去维护代码,不用一个一个页面的去找去改,直接封装好的代码里面去改就可以了

目录

1.html代码封装

 2.CSS代码封装

3.JS代码封装


1.html代码封装

如果每个页面或者多个页面都有一样的结构,可以再设置一个html文件,用来写这些结构,然后再要所有的html文件里面引用jqurey文件,然后给要使用这个html结构的元素一个id,通过id使用jqurey的 load()这个方法运行封装的html文件,如果一个div或元素就可以完成的事情,就不要去嵌套多个div或元素

具体操作

<!-- 公共布局 public.html -->
<div class="public-head"><p><a href="">首页</a></p><p><a href="">数字中国</a></p><p><a href="">云服务</a></p><p><a href="">企业营销</a></p><p><a href="">企业办公</a></p><p><a href="">知识产权</a></p><p><a href="">招商加盟</a></p>
</div>
<!-- 使用布局界面 -->
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><div id="public-head"></div></body><!-- 引入在线jq --><script src="https://code.jquery.com/jquery-3.1.1.min.js"></script><!-- 嵌入公共布局 public.html --><script type="text/javascript">$(function(){$('#public-head').load('public.html');})</script>
</html>

 2.CSS代码封装

css的样式在一个页面有多个一样的css样式,不需要去声明多个class或者id名字,只需要使用的元素声明一个class名字就可以了,在css里也只需要使用这个class,写一遍就可以了

一些在好几个css常用的css样式,就可以在使用一个css文件封装起来,比如页面背景色,弹出窗的样式,分页的样式,这些都可以通过一个通用的css文件封装起来方便使用

下面的是封装的css通用的代码,这里面封装了背景色和弹出窗的样式

具体怎么在页面使用,可以通过link标签引入这些css样式,方便我们的html里面使用

下面是引用的方法

<link rel="stylesheet" href="./css/tooltip.css" />

3.JS代码封装

3.1函数的封装

     3.1.1函数也是一个对象

     3.1.2函数中可以封装一些功能,在需要的使用可以执行这些功能

     3.1.3函数中也可以保存一些代码在需要的时候调用

     3.1.14使用typeof检查一个函数对象时,回返回function

3.2使用js文件封装同样的js代码,比如下面分页功能的代码

//一页有多少条数据
let num = 10;
//页码下标
let page_index = 0;
//总页数
let total_page;
// 页数渲染
function pagenumber(data) {let pagination = ``;pagination += `<div class="data-count">共 ${data.length} 条</div>`;pagination += `<select id="show" value="${num}" onchange="selects()"><option ${num == 10 ? 'selected' : ''} class="option" value="10">10条/页</option><option ${num == 20 ? 'selected' : ''} class="option" value="20">20条/页</option><option ${num == 50 ? 'selected' : ''} class="option" value="50">50条/页</option></select>  <div class="paging_Previous" id="up" onclick="back_page()"><img src="./img/lefte.png" alt="" /></div>`;// 获取总页数total_page = Math.ceil(data.length / num);// 总页数小于6,执行if的内容,大于6执行elseif (total_page < 6) {for (let j = 0; j < total_page; j++) {pagination +=`<div class="paging_num" onclick="sort(${j})" ${page_index == j ? 'style="color:#0c66ff;"' : '""'}>${j + 1}</div>`;}} else {// 判断显示哪几页的页数if (page_index > total_page - 4) {pagination +=`<div class="paging_num" onclick="sort(${0})" ${page_index == 0 ? 'style="color:#0c66ff;"' : '""'}>1</div>...`;} else if (page_index >=3){page_num = page_index - 2;pagination +=`<div class="paging_num" onclick="sort(${0})" ${page_index == 0 ? 'style="color:#0c66ff;"' : '""'}>1</div>...`;}// 循环页数for (let j = page_index - 2 < 0 ? 0 : (page_index + 2 > total_page - 1 ? page_index = total_page - 3 :page_index - 2); j < page_index + 2; j++) {pagination +=`<div class="paging_num" onclick="sort(${j})" ${page_index == j ? 'style="color:#0c66ff;"' : '""'}>${j + 1}</div>`;}// 用来判断是否添加省略号if (page_index < 3) {sti +=`...<div class="paging_num" onclick="sort(${total_page - 1})" ${page_index == total_page - 1 ? 'style="color:#0c66ff;";' : '"'}>${total_page}</div>`;} else if (page_index <= total_page - 4) {sti +=`...<div class="paging_num" onclick="sort(${total_page - 1})" ${page_index == total_page - 1 ? 'style="color:#0c66ff;";' : '"'}>${total_page}</div>`;}}pagination += `<div class="paging_Previous" id="bottom" onclick="next_page()"><img src="./img/righte.png" alt="" /></div>`;pagination +=`<div>前往<input type="text" class="inputs" placeholder="请输入页码" onkeyup="if(event.keyCode==13){search()}">页</div>`;$('#paging').html(pagination);
}// 分页内容搜索
function search() {// 获取输入框的值let input = document.querySelector('.inputs').value;// 转换输入值为整数let pageNumber = parseInt(input, 10);// 验证输入值if (isNaN(pageNumber) || pageNumber < 1 || pageNumber > total_page) {// 弹出警告提示// 显示超出限制的提示tooltip.innerHTML = `超出页面范围`;//修改弹出窗的样式tooltip.style = "display:block;";$('.inputs').val('');setTimeout(function() {tooltip.style = "display:none";}, 2000);} else {// 更新当前页码page_index = pageNumber - 1;// 调用 apply 函数更新分页内容applys(res);}
}//下一页
function next_page() {//k小于总页数-1if (page_index < total_page - 1) {//每次点击加1page_index++;}//调用渲染函数applys(res);
}//上一页
function back_page() {//k大于0if (page_index > 0) {//每次点击-1page_index--;//调用渲染applys(res);}
}// 改变每页渲染的数据条数
function selects() {// 获取下拉框的value let value = $('#show').val();// 选中大家下拉框的选项$("#mySelect").val(value);// 让每页的数据等于下拉框的value值num = value;// 重新计算总页数total_page = Math.ceil(res.length / num);if (page_index > total_page - 1) {page_index = total_page - 1;}// 调用渲染函数applys(datas);
}// 点击切换页面数据事件
function sort(j) {// 让页数调用点击的页数page_index = j;// 调用渲染函数applys(datas);
}

 它是通过重新封装一个js代码在页面中使用

比如分页的功能,加减功能都可以封装起来,获取接口域名,一些判断,也方便如果代码出问题了,好修改,然后再html里面直接引入js就可以使用了

通过下面的这个方法引入到页面中使用

<script src="./js/pagination.js"></script>

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

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

相关文章

曲面的共形变换

共形变换 曲面 S , S ~ S,\tilde{S} S,S~, σ : S → S ~ \sigma:S\to\tilde{S} σ:S→S~是光滑双射。如果对于 S S S上任意两条相交曲线&#xff0c; σ \sigma σ保持两线夹角&#xff0c;则称 σ \sigma σ为 S → S ~ S\to\tilde{S} S→S~的共形变换。 设曲面有参数化表…

使用docker拉取镜像很慢或者总是超时的问题

在拉取镜像的时候比如说mysql镜像&#xff0c;在拉取 时总是失败&#xff1a; 像这种就是网络的原因&#xff0c;因为你是连接到了外网去进行下载的&#xff0c;这个时候可以添加你的访问镜像源。也就是daemon.json文件&#xff0c;如果你没有这个文件可以输入 vim /etc/dock…

sql server 查询对象的修改时间

sql server 不能查询索引的最后修改时间&#xff0c;可以查询表&#xff0c;存储过程&#xff0c;函数&#xff0c;pk 的最后修改时间使用以下语句 select * from sys.all_objects ob order by ob.modify_date desc 但可以参考一下统计信息的最后修改时间&#xff0c;因为索…

使用 esrally race 测试 Elasticsearch 性能:实践指南

在 Elasticsearch 性能优化和容量规划中&#xff0c;使用 esrally 进行基准测试是官方推荐的方式。通过 esrally race 命令&#xff0c;您可以针对不同的数据集与挑战类型&#xff0c;对 Elasticsearch 集群进行精确的性能评估。本文将简要介绍常用的数据集与挑战类型&#xff…

MySQL复制问题和解决

目录 环境介绍 一&#xff0c;主库执行delete&#xff0c;从库没有该数据 模拟故障 修复故障 二&#xff0c;主库执行insert&#xff0c;从库已存在该数据 模拟故障 故障恢复 三&#xff0c;主库执行update&#xff0c;从库没有该数据 模拟故障 故障恢复 四&#xf…

提供详细的步骤指导,如何正确地安装和设置易支付服务?

要正确安装和设置易支付服务&#xff0c;您可以按照以下步骤进行操作&#xff1a; 下载易支付服务软件&#xff1a;首先&#xff0c;您需要从易支付官方网站或其他可信来源下载易支付服务软件的安装包。确保下载的软件版本是最新的。 安装易支付服务&#xff1a;双击安装包&am…

[RocketMQ] 发送重试机制与消费重试机制~

发送重试 RocketMQ 客户端发送消息时&#xff0c;由于网络故障等因素导致消息发送失败&#xff0c;这时客户端SDK会触发重试机制&#xff0c;尝试重新发送以达到调用成功的效果。 触发条件 客户端消息发送请求失败或超时。服务端节点处于重启或下线状态。服务端运行慢造成请…

mfc140u.dll是什么文件?如何解决mfc140u.dll丢失的相关问题

遇到“mfc140u.dll文件丢失”的错误通常影响应用程序的运行&#xff0c;这个问题主要出现在使用Microsoft Visual C环境开发的软件中。mfc140u.dll是一个重要的系统文件&#xff0c;如果它丢失或损坏&#xff0c;会导致相关程序无法启动。本文将简要介绍几种快速有效的方法来恢…

前端使用xlsx.js实现 Excel 文件的导入与导出功能

前端使用xlsx.js实现 Excel 文件的导入与导出功能 在现代的 Web 开发中&#xff0c;处理文件上传和导出功能已经变得越来越常见&#xff0c;尤其是 Excel 文件的导入与导出。 我们将使用 Vue.js 和 XLSX.js 库来处理 Excel 文件的读取和生成。XLSX.js 是一个强大的 JavaScrip…

02-9.python入门基础一Python模块与包(一)

一、Python 模块的概念 &#xff08;一&#xff09;模块的基本定义 在 Python 中&#xff0c;模块&#xff08;Module&#xff09;是一种组织代码的基本单元&#xff0c;简单来说&#xff0c;一个以 .py 结尾的 Python 文件就是一个模块。例如&#xff0c;我们创建一个名为 ex…

当我用影刀AI Power做了一个旅游攻略小助手

在线体验地址&#xff1a;旅游攻略小助手https://power.yingdao.com/assistant/ca1dfe1c-9451-450e-a5f1-d270e938a3ad/share 运行效果图展示&#xff1a; 话不多说一起看下效果图&#xff1a; 智能体的截图&#xff1a; 工作流截图&#xff1a; 搭建逻辑&#xff1a; 其实这…

Apache Tomcat 漏洞CVE-2024-50379条件竞争文件上传漏洞 servlet readonly spring boot 修复方式

1&#xff0c;关于漏洞 Apache Tomcat是一个流行的开源 Web 服务器和 Java Servlet 容器。 二、 漏洞描述 Apache Tomcat中修复了个 TOCTOU 竞争条件远程代码执行漏洞 (CVE-2024-50379)&#xff0c;该漏洞的 CVSS 评分为 9.8。Apache Tomcat 中 JSP 编译期间存在检查时间使用时…

AI Agent与MEME:技术与文化融合驱动Web3创新

AI Agent如何引领Web3新时代&#xff1f; 随着Web3与区块链技术的迅速发展&#xff0c;AI Agent作为人工智能与区块链的交汇点&#xff0c;正在逐步成为推动去中心化生态的重要力量。同时&#xff0c;MEME文化凭借其强大的社区驱动力和文化渗透力&#xff0c;在链上生态中扮演着…

EasyExcel 导出文件

EasyExcel 导出文件 EasyExcel导出文件,并解决格式报错 项目中使用EasyExcel导出数据 EasyExcel导出数据 引入pom文件 <!-- easy-excel --> <dependency><groupId>com.alibaba</groupId></

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——11上位机与小车交互

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——11上位机与小车交互 ​ 根据上一节的配置&#xff0c;目前已经建立了通讯环境&#xff0c;接下来给大家带来上位机与小车交互 这一章节里面也有图片大家去地瓜开发者社区看对应文章吧链接

【STM32 Modbus编程】-作为主设备写入多个线圈和寄存器

作为主设备写入多个线圈和寄存器 文章目录 作为主设备写入多个线圈和寄存器1、硬件准备与连接1.1 RS485模块介绍1.2 硬件配置与接线1.3 软件准备2、写入多个线圈2.1 数据格式2.2 发送数据2.3 结果3、写入多个寄存器3.1 数据格式3.2 发送数据3.3 结果本文将实现STM32作为ModBus主…

使用二分查找法找出给定点距离给定点集合距离最近的点

1、场景描述 给定点Point A &#xff08;x,y&#xff09;和 直线点集合 Points [(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)......],计算出集合中距离点A最近的一个点 &#xff08;如果集合中的两个点距离A点最近且相等&#xff0c;则只取其中一个&#xff09; 2、代码&#x…

经济学 ppt 2 部分

前言 上一次复习经济学是好久之前了&#xff0c;看了第一章的 ppt &#xff0c;好像重点就是谁是软件经济学之父。昨天老师讲了一下题型&#xff0c;20 分选择题&#xff0c; 20 分判断题&#xff0c;20 分计算题&#xff0c;6 6 8 三个计算题&#xff0c;25 分表格&#xff0…

winform中屏蔽双击最大化或最小化窗体(C#实现),禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭

winform中屏蔽双击最大化或最小化窗体(C#实现)&#xff0c;禁用任务管理器结束程序,在需要屏蔽双击窗体最大化、最小化、关闭 protected override void WndProc(ref Message m){#region 处理点击窗体标题栏放大缩小问题&#xff0c;禁用点击窗体标题栏放大缩小//logger.Info($&…

【SolidWorks转URDF】ROS学习笔记

一、环境配置 软件版本&#xff1a;SolidWorks 2022 SP3.1 Premium 转换插件版本&#xff1a;sw2urdfSetup2021.exe 对硬件有一定要求&#xff0c;需要独立显卡&#xff0c;显存大一点&#xff0c;否则会很卡。 二、文件转换 SolidWorks中的零部件和装配体对应URDF文件中的…