位置: 编程技术 - 正文

使用jQuery实现Web页面换肤功能的要点解析(jqueryw3c)

编辑:rootadmin

推荐整理分享使用jQuery实现Web页面换肤功能的要点解析(jqueryw3c),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:使用JQuery实现简单的拼图网页,jqueryw3c,使用jquery实现的项目,jquery weui,使用jquery实现的项目,使用JQuery实现简单的拼图网页,web jquery,如何用jquery,内容如对您有帮助,希望把文章链接给更多的朋友!

网页换肤是一门老技术了,老的现在都不怎么流行了。但是,有时候有些客户就是想要这个换肤功能。于是就实践做了一下网页换肤,结果遇到了很多问题。

网页换肤的基本原理

基本原理很简单,就是使用 JS 切换对应的 CSS 样式表。例如导航网站 Hao 的右上方就有网页换肤功能。除了切换 CSS 样式表文件之外,通常的网页换肤还需要通过 Cookie 来记录用户之前更换过的皮肤,这样下次用户访问的时候,就可以自动使用上次用户配置的选项。

那么基本工作流程就出来了:访问网页——JS 读取 Cookie ——如果没有,使用默认皮肤——如果有,使用指定皮肤;用户点击换肤选项——JS 控制替换对应的 CSS 样式表——将皮肤选项写进 Cookie 保存。

网页换肤事先需要的准备

首先你可能要准备多套 CSS 样式表文件,当点击换肤按钮的是,使用 JS 来切换对应的 CSS 样式表。之后,就是在网页上增加一个 ul li 列表,用 CSS 修饰一下做成换肤选项。例如:

下面我们就来看具体功能代码。

实现点击切换对应 CSS 功能

首先,我们的皮肤选项的 HTML 结构是这样的

然后在网页的顶部偏下的位置放上一个空的 link 标签,我们将会使用 jQuery 为这个 link 标签赋予不同的 CSS 文件实现切换效果

使用jQuery实现Web页面换肤功能的要点解析(jqueryw3c)

其中,我自定义了一个 data-href 属性来存放系统默认的皮肤,这样当页面加载完成之后,如果 JS 没有检测到 Cookie 中的皮肤信息,就会把 data-href 中的内容赋值上去。之后就是大家熟悉的 jQuery 代码:

大体的逻辑就是获取到当前皮肤的 class 然后截取出来 skin* 然后通过一个函数得到其对应的 CSS 文件。skincssurl 记载的是网页的非皮肤 CSS 文件,主要用来获取当前网页的 CSS 目录 URL ,最后将混合好的 CSS 皮肤文件赋值准备好的空 link 中,实现换肤。

增加 Cookie 记录皮肤功能

这里主要用到两个自定义的函数,用来创建、读取 Cookie 内容。

你只需要把这两个函数复制到 JS 代码区域即可。在 jQuery 点击换肤的功能代码中,最后一句就创建了一个 Cookie,等网页加载完成之后,我们需要使用 JS 读取 Cookie 内容,然后使用 if 判断:

不要被这么乱的代码吓晕了,实际上逻辑很简单,先获取 Cookie 的皮肤值,如果有就为对应的皮肤选项高亮并且转换得到对应的 CSS 皮肤文件赋值。如果没有 Cookie 内容,就将 data-href 属性中记录的值赋值进去。

网页换肤的闪烁问题和不完美解决方案

网页换肤中,会遇到闪烁的问题。就是当点击切换按钮的时候,更换颜色或者图片会闪烁一下。或者使用 Cookie 记录之后,用户使用了非默认的皮肤,也会闪烁一下,先出现默认的样式然后再闪烁切换成用户自己选择的样式。

这种影响用户体验的现象肯定要彻底消灭,但是一直没有找到完美的解决方法。因为浏览器默认的是优先渲染 CSS 之后再加载 JS,特别是使用 Cookie 记录的皮肤,先渲染现有的 CSS 之后,JS 才能读取然后切换到皮肤。原理是这样的,跟客户协商之后,客户给出了一个“无闪烁”的换肤效果示例,是 MG 很早的一款主题。同样的 Cookie 记录等,但是他的作品确实没有闪烁情况。

于是我就查看了他的 JS 代码,没有发现特殊之处,后来才想明白,这种闪烁问题,在图片比较多的网页中效果尤其明显,因为切换的 CSS 需要加载图片需要更多时间。而 MG 那款主题中,切换的 CSS 文件只是改变了几个 background 颜色,加载速度快到你眼球反应不过来就造成了不闪烁的假象。

不完美解决方案也是有的,点击切换按钮之后的闪烁情况,也是因为要加载图片等,那么我们可以在访问网页的时候,使用预加载技术将其他皮肤图片预加载或者使用 CSS Sprite 技术做成一张大图片。

至于 Cookie 记录闪烁的问题,这是浏览器渲染的硬伤,只能尽量减少换肤需要改变的地方,尽量压缩图片减小体积。然后优先加载没有任何皮肤的基础样式,之后使用 JS 加载默认样式或者读取 Cookie 获取的皮肤选项。这样处理,访问网页的时候会先显示白色或者无颜色,之后直接切换成之前选择的皮肤的颜色,而不会从默认的颜色闪烁变成另一种颜色从而提升一定的用户体验。

使用jQuery制作遮罩层弹出效果的极简实例分享 客户的网站上突然需要一个遮罩弹窗效果,也可以称作暗箱之类的,具体效果就是网页中背景变成半透明,然后在屏幕中间出现一个菜单之类的东西。

基于jQuery倒计时插件实现团购秒杀效果 倒计时一般是用来表示未来某一时刻距现在时刻还剩多少时间。倒计时在WEB上应用非常广泛,如考试系统倒计时,团购网站中的优惠活动倒计时等等。今天

jQuery Easyui 验证两次密码输入是否相等 什么是jQueryEasyUIjQueryEasyUI框架提供了创建网页所需的一切,帮助您轻松建立站点。easyui是一个基于jQuery的框架,集成了各种用户界面插件。easyui提供建

标签: jqueryw3c

本文链接地址:https://www.jiuchutong.com/biancheng/386557.html 转载请保留说明!

上一篇:jQuery中$.each()函数的用法引申实例(jquery中each()方法的作用及使用)

下一篇:使用jQuery制作遮罩层弹出效果的极简实例分享(jqueryfilter)

  • 税务稽查最坏结果不知情人员怎么办
  • 为员工代缴社保材料
  • 实收资本变动额怎么算
  • 增值税税控系统技术维护费怎么抵扣
  • 其他收益会计分录
  • 收取不合规发票怎么处理
  • 小微企业所得税优惠政策最新2022
  • 小规模纳税人每个月需要报什么税
  • 咨询费发票怎么入账
  • 子公司员工向母公司申请党员
  • 对公业务指什么
  • 期末结转增值税顺序
  • 企业购车可以一次性扣除吗
  • 网络工程完工后干什么
  • 进项发票已经抵扣怎么做退回处理
  • 建筑企业法定代表人和建筑公司资质不是一个人
  • 总公司汇总申报怎么弄
  • 苹果手机电池低于多少需要更换
  • prevsrv.exe - prevsrv是什么进程 有什么用
  • Win11/Win10 21H2 正式版发布前,微软再次推送可靠性补丁更新 KB4023057
  • 有哪些分享方式
  • win11 桌面右键
  • 我国现行的关税税率种类及适用
  • win7系统修改
  • 库存现金清查主要包括哪些内容
  • 发放员工奖励
  • 应交增值税视频讲解
  • 职工福利费会计科目怎么写
  • php安装oci8
  • [ChatGPT] 从 GPT-3.5 到 GPT-5 的进化之路 | ChatGPT和程序员 : 协作 or 取代
  • springboot aop切面
  • python如何在画布上写字
  • 预提费用的会计分录2018
  • 净现值与原始投资额现值
  • 技术服务费发票图片
  • 个税查询和实发工资不符合
  • 营业执照上有劳务派遣还需要办其他手续吗
  • springcloud分布式微服务组件
  • 出口退税的会计处理例题
  • 申报方式选哪个?
  • 控股子公司注销母公司账务处理实例
  • mysql 表不存在报错信息
  • 承兑汇票大回头是什么意思
  • 固定资产盘盈为什么计入盈余公积
  • 筹资活动产生的现金流量净额减少说明什么
  • 一般纳税人金税盘怎么清卡
  • 资本公积占比多少合适
  • 固定资产处置的会计科目
  • 外购商品职工福利进项税额转出如何记账?
  • 代开普通发票需提供哪些材料?
  • 制造费用的归集是什么意思
  • 独立核算分公司与总公司的账务处理
  • 收到法人的借款怎样写摘要
  • 收到销售折让的负数发票怎么做会计分录
  • 存货报废计入
  • 公司买茶具帐务处理流程
  • 防火墙监视模式
  • rhel7.5重置密码
  • freebsd 配置ip
  • unix系统命令大全
  • solaris教程
  • ubuntu怎么切换到桌面
  • linux没有ssh
  • 调整linux时间
  • 近期win7蓝屏
  • input和button按钮合到一起
  • 跨浏览器跨终端的前端开发
  • 教女朋友学英语
  • Python装饰器实现几类验证功能做法实例
  • dos中创建文件
  • 怎样用在js中使用css的内容
  • ASP小贴士/ASP Tips javascript tips可以当桌面
  • jquery插件大全
  • android 获取时区
  • 国税局定额发票查询
  • 低保户系统能查出来吗
  • 税法税收保全的适用范围
  • 土地增值税按什么价格
  • 怎么样开通深圳医保
  • 甘肃省张掖市国家储备林
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设