JavaScript实现动态CSS,换肤技术
2007-09-13 16:57
330 查看
常见的例子就是:一个站点上有多个页面样式提供浏览者选择(很多blog系统都有使用)。同时,在选择了某样式后,再次打开该页面时,将仍然保持该样式。自然会想到了JavaScript + Cookie技术,下面是HTML代码部分(另外再加需要的CSS文件就可以使用了):
<html>
<head>
<link ID="skin" rel="stylesheet" type="text/css">
<title>动态换肤技术</title>
<script language="javascript" type="text/javascript">
<!--
function SetCookie(name,value)
{
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(2<argc)?argv[2]:null;
var path=(3<argc)?argv[3]:null;
var domain=(4<argc)?argv[4]:null;
var secure=(5<argc)?argv[5]:false;
document.cookie=name+"="+escape(value)+((expires==null)?"":("; expires="+expires.toGMTString()))+((path==null)?"":("; path="+path))+((domain==null)?"":("; domain="+domain))+((secure==true)?"; secure":"");
}
function GetCookie(Name)
{
var search = Name + "=";
var returnvalue = "";
if (document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if (offset != -1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset,end));
}
}
return returnvalue;
}
var thisskin;
thisskin=GetCookie("nowskin");
if(thisskin!="")
skin.href=thisskin;
else
skin.href="css.css";
function changecss(url)
{
if(url!="")
{
skin.href=url;
var expdate=new Date();
expdate.setTime(expdate.getTime()+(24*60*60*1000*30));
//expdate=null;
//以下设置COOKIES时间为1年,自己随便设置该时间..
SetCookie("nowskin",url,expdate,"/",null,false);
}
}
//-->
</script>
</head>
<body>
<P>请选择下面的下拉菜单测试换肤效果</P>
<p><a href=# onClick="changecss('css.css')">css.css</a> <a href=# onClick="changecss('css1.css')">css1.css</a> <a href=# onClick="changecss('css2.css')">css2.css</a> <a href=# onClick="changecss('css3.css')">css3.css</a></p>
<p>
<select name="select" onChange="changecss(this.value)">
<option>选择样式单文件</option>
</select>
</p>
<select name="select" onChange="changecss(this.value)">
<script language="javascript">
var csss=new Array();
csss[0]="css.css";
csss[1]="css1.css";
csss[2]="css2.css";
csss[3]="css3.css";
var i;
for(i=0;i<4;i++)
if(thisskin==csss[i])
document.write("<option value=/""+csss[i]+"/" selected>"+csss[i]+"样式单文件</option>");
else
document.write("<option value=/""+csss[i]+"/">"+csss[i]+"样式单文件</option>");
</script>
</select>
</body>
</html>
<html>
<head>
<link ID="skin" rel="stylesheet" type="text/css">
<title>动态换肤技术</title>
<script language="javascript" type="text/javascript">
<!--
function SetCookie(name,value)
{
var argv=SetCookie.arguments;
var argc=SetCookie.arguments.length;
var expires=(2<argc)?argv[2]:null;
var path=(3<argc)?argv[3]:null;
var domain=(4<argc)?argv[4]:null;
var secure=(5<argc)?argv[5]:false;
document.cookie=name+"="+escape(value)+((expires==null)?"":("; expires="+expires.toGMTString()))+((path==null)?"":("; path="+path))+((domain==null)?"":("; domain="+domain))+((secure==true)?"; secure":"");
}
function GetCookie(Name)
{
var search = Name + "=";
var returnvalue = "";
if (document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if (offset != -1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset,end));
}
}
return returnvalue;
}
var thisskin;
thisskin=GetCookie("nowskin");
if(thisskin!="")
skin.href=thisskin;
else
skin.href="css.css";
function changecss(url)
{
if(url!="")
{
skin.href=url;
var expdate=new Date();
expdate.setTime(expdate.getTime()+(24*60*60*1000*30));
//expdate=null;
//以下设置COOKIES时间为1年,自己随便设置该时间..
SetCookie("nowskin",url,expdate,"/",null,false);
}
}
//-->
</script>
</head>
<body>
<P>请选择下面的下拉菜单测试换肤效果</P>
<p><a href=# onClick="changecss('css.css')">css.css</a> <a href=# onClick="changecss('css1.css')">css1.css</a> <a href=# onClick="changecss('css2.css')">css2.css</a> <a href=# onClick="changecss('css3.css')">css3.css</a></p>
<p>
<select name="select" onChange="changecss(this.value)">
<option>选择样式单文件</option>
</select>
</p>
<select name="select" onChange="changecss(this.value)">
<script language="javascript">
var csss=new Array();
csss[0]="css.css";
csss[1]="css1.css";
csss[2]="css2.css";
csss[3]="css3.css";
var i;
for(i=0;i<4;i++)
if(thisskin==csss[i])
document.write("<option value=/""+csss[i]+"/" selected>"+csss[i]+"样式单文件</option>");
else
document.write("<option value=/""+csss[i]+"/">"+csss[i]+"样式单文件</option>");
</script>
</select>
</body>
</html>
相关文章推荐
- JavaScript+CSS实现表格动态样式
- JavaScript+Css实现的鼠标悬停时动态翻滚的紫色菜单导航
- php+javascript+css 实现动态添加数据行
- JavaScript+CSS实现图片动态轮播dynamic_slider
- javascript实现动态导入js与css等静态资源文件的方法
- javascript实现css主题样式切换;动态改变引入的css文件;
- C#实现动态引用外部的Javascript,CSS
- Javascript+CSS实现Flash动态新闻效果(pp原创)
- JavaScript实现动态CSS,换肤技术
- JavaScript实现动态下拉收起菜单+css实现动画效果
- javascript实现动态导入js与css等静态资源文件的方法
- C#实现动态引用外部的Javascript,CSS
- 如何实现JavaScript动态加载CSS和JS文件
- 解读M$源代码:JavaScript+CSS实现层的平移及动态显示
- 解读M$源代码:JavaScript+CSS实现动态菜单显示
- javascript实现动态加载CSS
- Javascript+CSS实现Flash动态新闻效果(pp原创)
- 如何实现JavaScript动态加载CSS和JS文件
- 如何实现JavaScript动态加载CSS和JS文件
- Javascript+CSS实现Flash动态新闻效果(pp原创)