简单实现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 相关文章推荐
javascript中的缓动效果实现程序
Dec 29 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
Oct 19 Javascript
js继承实现方法详解
Dec 16 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
Mar 22 Javascript
Linux CentOS系统下安装node.js与express的方法
Apr 01 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
May 22 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Python3使用requests发闪存的方法
2016/05/11 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
python中几种自动微分库解析
2019/08/29 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
毕业生就业协议书
2014/04/11 职场文书
文案策划求职信
2014/04/14 职场文书
环保标语大全
2014/06/12 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
会计做账心得体会
2016/01/22 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
深入理解pytorch库的dockerfile
2022/06/10 Python