简单实现js页面切换功能


Posted in Javascript onJanuary 10, 2021

本文为大家介绍了js页面换肤功能处理原理  (*需要在有服务器环境下测试使用*),供大家参考,具体内容如下

原理:

1.换肤是让页面采用不用的样式设置
2.我们把要换肤的地方根据不用皮肤做成多个样式表文件
3.获取link的id
4.修改link的href属性改变样式表
5.采用了不用样式表,就是使用对应皮肤样式
6.利用cookie技术用户原则,用户再次打开页面也会采用上次选用皮肤
7.读取cookie要在页面载入开始,保证对应皮肤css提前加载

<html>
<head>
<title>js页面换肤功能</title>
<meta charset="utf-8">
<link href="public.css" rel="stylesheet" type="text/css" />
<link href="1.css" rel="stylesheet" type="text/css" id="skin" />
<script type="text/javascript"> 
/*
js页面换肤功能处理原理
1.换肤是让页面采用不用的样式设置
2.我们把要换肤的地方根据不用皮肤做成多个样式表文件
3.获取link的id
4.修改link的href属性改变样式表
5.采用了不用样式表,就是使用对应皮肤样式
6.利用cookie技术用户原则,用户再次打开页面也会采用上次选用皮肤
7.读取cookie要在页面载入开始,保证对应皮肤css提前加载
*/
 
//读取cookie,换肤
var skin=document.getElementById("skin");//拿到link元素
var cookieval=document.cookie;
var skipval=readcookie("skin");
if(!skipval){//如果cookie不存在记录
 skin.href="1.css";
}else{
 skin.href=skipval+".css";//有记录
};
window.onload=function(){
 //点击按钮换肤
 var skin1=document.getElementById("skin1");
 var skin2=document.getElementById("skin2");
 var skin3=document.getElementById("skin3");
 var Days = 30; //设置过期时间,30天以后
 var exp = new Date(); 
 exp.setTime(exp.getTime() + Days*24*60*60*1000);
 skin1.onclick=function(){ 
 skin.href="1.css";
 document.cookie = "skin=1;expires="+exp.toUTCString();
 };
 skin2.onclick=function(){
 skin.href="2.css";
 document.cookie = "skin=2;expires="+exp.toUTCString();
 };
 skin3.onclick=function(){
 skin.href="3.css";
 document.cookie = "skin=3;expires="+exp.toUTCString();
 };
};
//读取cookie指定值
function readcookie(key){ 
 var skinval=false;
 var arrkv=cookieval.split(";"); 
 for(var i=0;i<arrkv.length;i++){ 
 var itemc=arrkv[i].split("=");
 if(itemc[0]==key){ 
  skinval=itemc[1];
 }else{
 };
 }; 
 return skinval;
};
</script>
</head>
<body>
<div class="header skinheader">
 <div class="skinchange">
 <input type="button" value="皮肤1" id="skin1" />
 <input type="button" value="皮肤2" id="skin2" />
 <input type="button" value="皮肤3" id="skin3" />
 </div>
</div>
<div class="bodyer skinbodyer">
 <div class="con1">我是内容1</div>
 <div class="con2">我是内容2</div>
 <div class="con3">我是内容3</div>
</div>
<div class="footer skinfooter">
我是尾部信息
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery html()等方法介绍
Nov 18 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
ECMAScript6函数默认参数
Jun 12 Javascript
jQuery实现简单的tab标签页效果
Sep 12 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
JS图片压缩(pc端和移动端都适用)
Jan 12 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
Angularjs按需查询实例代码
Oct 30 Javascript
React Native 图片查看组件的方法
Mar 01 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
Jun 29 Javascript
ant-design-vue 实现表格内部字段验证功能
Dec 16 Javascript
JavaScript作用域示例详解
Jul 07 #Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
Jul 07 #Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
Jul 07 #Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 #Javascript
jQuery之简单的表单验证实例
Jul 07 #Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 #Javascript
Bootstrap3使用typeahead插件实现自动补全功能
Jul 07 #Javascript
You might like
在PWS上安装PHP4.0正式版
2006/10/09 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
Python中正则表达式详解
2017/05/17 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
pandas值替换方法
2018/07/10 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
幼儿园中班评语大全
2014/04/17 职场文书
安全口号大全
2014/06/21 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
2016年少先队活动总结
2016/04/06 职场文书
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python