当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JS代码实例:实现随机加载不同的CSS样式

Javascript
jQuery代码:jQuery控制表单里的回车键
用DIV完美模拟createPopup 弹出窗口(脚本之家修正版),支持Firefox,ie,chrome
jQuery Flash/MP3/Video多媒体插件
9个JavaScript评级/投票插件
JS实现的radio图片选择按钮效果
IE中checkbox在刷新后初始化的问题
JavaScript 学习笔记(十一)
JS 对象介绍
javascript 哈希表(hashtable)的简单实现
jquery 防止表单重复提交代码
js parsefloat parseint 转换函数
javascript parseInt与Number函数的区别
JavaScript 学习笔记(十二) dom
JavaScript 学习笔记(十三)Dom创建表格
javascript 实现自由落体的方块效果
javascript 获取url参数和script标签中获取url参数函数代码
JAVASCRIPT style 中visibility和display之间的区别
javascript 拖放效果实现代码
jquery last-child 列表最后一项的样式
Jquery实战_读书笔记1—选择jQuery

Javascript 中的 JS代码实例:实现随机加载不同的CSS样式


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-03   浏览: 192 ::
收藏到网摘: n/a

随机载入CSS样式的JS效果实际上很好实现,本文的代码如下,具体思路是用一个默认的CSS样式:default.css。另外再用三个其他名称的CSS:skin1.css,skin2.css,skin3.css。当然你可以用更多的样式表,随后在载入时进行随机替换,因为最先载入的default.css样式是直接写在页面上,而JS随机载入的后面CSS文件会覆盖之前的CSS,只要CSS中的元素名称相同即可。

var Init = {
 
       //样式表文件目录路径
baseSkinUrl : "/blog/css/skin/",
 
//样式表文件名称列表
styles : ["default", "skin1", "skin2", "skin3"],
 
//样式cookie的key值
cookieKey : "css9_blog_random_css",
 
//定义方法,获取min至max间的随机数,包含min及max
getRandomNum : function(min, max){
return min + Math.floor(Math.random() * (max - min + 1)); 
},
 
//定义方法,获取cookie值
getCookie : function(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) {
return unescape(arr[2]);
}
return null;
},
 
//定义方法,设置cookie值
setCookie : function(sName,sValue,objHours,sPath,sDomain,bSecure){
var sCookie = sName + "=" + encodeURIComponent(sValue);
if (objHours) {
var date = new Date();
var ms = objHours * 3600 * 1000;
date.setTime(date.getTime() + ms);
sCookie += ";expires=" + date.toGMTString();
}
if (sPath) {
sCookie += ";path=" + sPath;
}
if (sDomain) {
sCookie += ";domain=" + sDomain;
}
if (bSecure) {
sCookie += ";secure";
}
document.cookie=sCookie;
},
 
        //定义方法,通过获取随机数随机加载CSS
loadCSS : function(){
var length = this.styles.length,
     random = this.getRandomNum(0, length-1),
     cookieStyle = this.getCookie(this.cookieKey),
     currentStyle = "default";
 
//如果当前随机取到的样式与cookie中样式相同,则重新计算随机数
                while(this.styles[random] == cookieStyle)
{
random = this.getRandomNum(0, length-1)
}
 
currentStyle = this.styles[random];
 
//将新样式存入cookie,cookie有效时间为24小时
                this.setCookie(this.cookieKey, currentStyle, 24, "/", "websbook.com", false);
 
//若样式名称不为"default"默认样式,则向<head />标签中写入定制样式
                if(currentStyle != "default")
{
document.write('<link rel="stylesheet" type="text/css"
                  href="'
+ this.baseSkinUrl + this.styles[random] + '.css" />');
}
}
}
 
Init.loadCSS();