当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JQuery 前台切换网站的样式实现

Javascript
一个特殊的排序需求的javascript实现代码
javaScript 简单验证代码(用户名,密码,邮箱)
支持ie与FireFox的剪切板操作代码
使用JS判断是否数字和小数点组合的数字的两中方法比较(isNaN和逐判断)
javascript 表单验证常见正则
IE FF OPERA都可用的弹出层实现代码
PPK 谈 JavaScript 的 this 关键字 [翻译]
JavaScript 自动在表格前面增加序号
点击按钮后 文本框变为Select下拉列表框
js类的静态属性和实例属性的理解
点击文章内容处弹出页面代码
点击下载链接 弹出页面实现代码
签名框(Textarea)限制文字数量并适时提示
JavaScript CSS 通用循环滚动条
js removeChild 障眼法 可能出现的错误
面向对象的javascript(笔记)
JavaScript 浮点数运算 精度问题
JavaScript 接收键盘指令示例
CSS 美化表格边框为凹陷立体效果的实现方法
JavaScript 控制文本框的值连续加减

Javascript 中的 JQuery 前台切换网站的样式实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 289 ::
收藏到网摘: n/a

本文说的是在WordPress中怎样利用JQuery在网站的前台切换样式的方法。或者这篇文章的方法大家可能不是太需要,因为我觉得这是解决我被主题样式折腾到差不多分裂的原因及结果的最后手段。 但如果你想为网站添加多一些样式,让访客选择;又或者你想调整一下网站的样式,而在决定前让访客先体现的话,这也是一个很好的办法,省去总是切换主题的痛苦。
切换效果参照本站。
1. 切换样式的按钮代码:
复制代码 代码如下:

<div id="style-switch">
<ul>
<li><a href="#?style=white" rel="white" class="styleswitch white">Day</a></li>
<li><a href="#?style=black" rel="black" class="styleswitch black">Night</a></li>
</ul>
</div>

上面的按钮代码请根据你的网站设计放置。比如在我这里是放到header.php文件中的。
2. 样式引用代码:
复制代码 代码如下:

<?php if($_COOKIE['style'] == 'black') : ?>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/black.css" title="black" media="screen" />
<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/white.css" title="white" media="screen" />
<?php else : ?>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/white.css" title="white" media="screen" />
<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/black.css" title="black" media="screen" />
<?php endif; ?>

在这里我简单说明一下:
因为在后面的js代码中会于浏览器的cookie部分写入一个cookie记录“style”,所以在这里我会让浏览器根据记录进行样式的调用(这里为两个样式,一个“white”,另一个“black”)。
当浏览器存在“style”的cookie记录,并记录为“black”时候,则先读取black.css文件,这可以说是主样式文件;及后再读取辅助样式(就是供需要切换的样式),white.css。
如果浏览器没有任何“style”的样式cookie记录,或者“style”的样式cookie记录为“white”时候,则主题先读取white.css文件,再读取black.css文件。
在这里需要补充的是,使用PHP的cookie读取会比使用js的cookie读取更为有效。因为我原来是利用js进行cookie的读取动作,但由于js的加载还是需要那么一点时间,所以在切换样式后的页面浏览中并不完美。如果你以前发现选择黑色主题后,再浏览页面,会出现先是一瞬间的白色主题,然后才是黑色主题的现象。这就是我要说明的情况了。现在使用PHP代码则不再存在这个不足。
3. Javascript部分代码:(注意前提是你已经在网站中调用了JQuery库)
复制代码 代码如下:

(function($)
{
$(document).ready(function() {
$('.styleswitch').click(function() {
$('body').append('<div id="overlay" />');
$('#overlay')
.css({
display: 'none',
position: 'absolute',
top:0,
left: 0,
width: '100%',
height: '2000%',
zIndex: 1000,
background: 'black'
})
.fadeIn(500);
switchStylestyle(this.getAttribute("rel"));
$('#overlay').fadeOut(500);
return false;
});
});
function switchStylestyle(styleName)
{setTimeout(function() {
$('link[@rel*=style][title]').each(function(i)
{
this.disabled = true;
if (this.getAttribute('title') == styleName) this.disabled = false;
});}, 500);
createCookie('style', styleName, 365);
}
})(jQuery);

上面的部分是点击动作部分。我在中间添加了一段#overlay的块样式是为了在切换过程中制作一个灯箱效果,这样会比突然的切换来得更为自然。
然后还需要添加产生cookie记录的功能代码:
复制代码 代码如下:

function createCookie(name,value,days)
{
if (days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

还有添加删除cookie记录的功能代码:
复制代码 代码如下:

function eraseCookie(name)
{
createCookie(name,"",-1);
}

到此,完成上面三部后就可以了,希望大家看得明白。