来源:http://www.php100.com/html/webkaifa/DIV_CSS/2008/1014/2326.html

Html代码部分:

1.要有一个带id的样式表链接,我们要通过操作这个链接来调用不同的href.

<link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile" />

2.皮肤选择按钮(后台为每个li添加onclick事件,触发换肤功能)

<ul id="skin">
<li id="skin_0"
title="灰色">灰色</li>
<li id="skin_1"
title="绿色">绿色</li>
<li id="skin_2"
title="黄色">黄色</li>
<li id="skin_3"
title="蓝色">蓝色</li>
<li id="skin_4"
title="粉色">粉色</li>
<li id="skin_5"
title="紫色">紫色</li>
</ul>

Js部分:

1.换肤方法

//设置cookie,按钮选中状态,页面皮肤
skin.setSkin=function(n){
var skins
=("skin").getElementsByTagName("li");
for
(i=0;i<skins.length;i++)
{
skins[i].className="";//初始化按钮状态
}
skin.setCookie(n);//保存当前样式
("skin_"+n).className="selected";//设置选中皮肤按钮的样式
("cssfile").href="css/main"+n+".css";//设置页面样式
}

2.存取cookie

//将当前皮肤n存到cookie
skin.setCookie=function(n){
var expires=new
Date();
expires.setTime(expires.getTime()+24*60*60*365*1000);
var
flag="Skin_Cookie="+n;
document.cookie=flag+";expires="+expires.toGMTString();
}
//返回用户设置的皮肤样式
skin.readCookie=function(){
var
skin=0;
var mycookie=document.cookie;
var name="Skin_Cookie";
var
start1=mycookie.indexOf(name+"=");
if(start1==-1){
skin=0;//如果没有设置则显示默认样式
}
else{
var
start=mycookie.indexOf("=",start1)+1;
var
end=mycookie.indexOf(";",start);
if(end=-1){
end=mycookie.length;
}
var
values= unescape(mycookie.substring(start,end));
if
(values!=null)
{
skin=values;
}
}
return skin;

}

3.绑定换肤按钮事件

skin.addEvent=function(){
var skins
=("skin").getElementsByTagName("li");
for
(i=0;i<skins.length;i++)
{
skins[i].onclick=function(){skin.setSkin(this.id.substring(5))};
}
}

4.页面加载完成后设置皮肤样式

window.onload=function(){
skin.setSkin(skin.readCookie());//根据读取cookie返回值设置皮肤样式
skin.addEvent();//绑定按钮事件

PS:换肤结果保存在cookie好像不太靠谱,还是要保存在服务器端的数据库里面靠谱点……

【转】Javascript+css 实现网页换肤功能的更多相关文章

  1. JS实现网页换肤功能效果

    网页换肤的基本原理 使用 JS 切换对应的 CSS 样式表.例如hao123首页的右上方就有网页换肤功能.除了切换 CSS 样式表文件之外,通常的网页换肤还需要通过 Cookie 来记录用户之前更换过 ...

  2. 使用 css/less 动态更换主题色(换肤功能)

    前言 说起换肤功能,前端肯定不陌生,其实就是颜色值的更换,实现方式有很多,也各有优缺点 一.看需求是什么 一般来说换肤的需求分为两种: 1. 一种是几种可供选择的颜色/主题样式,进行选择切换,这种可供 ...

  3. 利用CSS预处理技术实现项目换肤功能(less css + asp.net mvc4.0 bundle)

    一.背景 在越来越重视用户体验的今天,换肤功能也慢慢被重视起来.一个web系统用户可以选择一个自己喜欢的系统主题,在用户眼里还是会多少加点分的.我们很开心的是easyui v1.3.4有自带defau ...

  4. JavaScript网页换肤

    使网页背景颜色可选黄/粉 <!doctype html> <html> <head><title>网页换肤</title></head ...

  5. js网页换肤

    使网页背景颜色可选黄/粉 <html> <head> <meta charset="utf-8"> <meta name="ge ...

  6. 用js来实现页面的换肤功能(带cookie记忆)

    用js来实现页面的换肤功能 js实现换肤功能的实现主要是通过利用js控制CSS来实现的.大致的实现原理是这样的, 1.先定义一个页面基本样式style.css来确定div的宽高等属性,使得整个页面的D ...

  7. cookie换肤功能

    <div class="selectSkin"> <input id="red" class="themeBtn" typ ...

  8. 换肤功能的实现以及监听storage实现多个标签页一起换肤

    1:需求:项目的侧边栏实现换肤功能,核心代码: updateSkin (val) { const existSkinLink = document.head.querySelector('link[i ...

  9. Flex AIR应用换肤功能(Android和IOS)

    说明 换肤功能,即将整个应用的皮肤都进行更换,其实质,是动态加载swf文件的过程,而这些swf文件则有css文件编译而来. 关于换肤功能,在android和ios系统的实现方式是不同的.主要原因,是因 ...

随机推荐

  1. Python入门(二,基础)

    一,基本语法 Python标识符 在python里,标识符有字母.数字.下划线组成. 在python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. python中的标识符是区分大 ...

  2. Win7 登入提示临时漫游档案

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

  3. To and Fro

    Description Mo and Larry have devised a way of encrypting messages. They first decide secretly on th ...

  4. 利用WPF绘图

    C#入门经典 25章的一个例子,利用WPF绘图. XAML: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/p ...

  5. C# 控件不刷新问题

    /********************************************************************** * C# 控件不刷新问题 * 说明: * 当网络连接出问 ...

  6. 纯 CSS 创建一个三角形

    [要求]:用纯CSS创建一个三角形的原理是什么? ♪ 答: 把上.左.右三条边隐藏掉(颜色设为 transparent) [实现]: #demo { width: 0; height: 0; bord ...

  7. Git命令整理

    说在前面: 刚开始在实习时接触git,是用git可视化工具,但是仅限于克隆库.切换分支.抓取和推送,对于其中的原理不甚了解.看了廖雪峰老师Git教程,获益颇丰.特别要感谢我工作中的同事,是他强烈建议我 ...

  8. Quantum & r2q

    Quantum & r2q Let's assume we have 2 classes with the same parent : Parent : ceil = rate = 100 c ...

  9. Linux TC (traffic control)

    在着手学习TC采用如下单位来描述带宽: mbps = 1024 kbps = 1024 * 1024 bps => byte/s mbit = 1024 kbit => kilo bit/ ...

  10. Sed 直接修改文件

    sed最常用的用法莫过于替换文件,然而其默认的模式是直接输出在shell中 sed 's/Old/New/' My_File.txt 如果我们想要sed直接在文件中更改,只需要在sed后面添加 -i ...