简单实现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 tools 系列 scrollable(2)
Sep 06 Javascript
js优化针对IE6.0起作用(详细整理)
Dec 25 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
JavaScript获取当前网页最后修改时间的方法
Apr 03 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
AngularJS基础 ng-switch 指令简单示例
Aug 03 Javascript
jQuery获取file控件中图片的宽高与大小
Aug 04 Javascript
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
JS计算斐波拉切代码实例
Sep 12 Javascript
p5.js绘制创意自画像
Nov 04 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
Sep 04 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
fgetcvs在linux的问题
2012/01/15 PHP
memcache命令启动参数中文解释
2014/01/13 PHP
初识php MVC
2014/09/10 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
python字符串替换示例
2014/04/24 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
python 实时遍历日志文件
2016/04/12 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
python字典的值可以修改吗
2020/06/29 Python
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
C语言面试题
2015/10/30 面试题
毕业留言寄语大全
2014/04/10 职场文书
实习护士自荐信
2014/06/21 职场文书
公司外出活动方案
2014/08/14 职场文书
圣诞晚会主持词
2015/07/01 职场文书
Nginx 匹配方式
2022/05/15 Servers