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


Posted in Javascript onJune 22, 2009

但如果你想为网站添加多一些样式,让访客选择;又或者你想调整一下网站的样式,而在决定前让访客先体现的话,这也是一个很好的办法,省去总是切换主题的痛苦。
切换效果参照本站。
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); 
}

到此,完成上面三部后就可以了,希望大家看得明白。
Javascript 相关文章推荐
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
Jan 06 Javascript
使用javascript实现雪花飘落的效果
Jan 13 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
js实现上传图片预览的方法
Feb 09 Javascript
14 个折磨人的 JavaScript 面试题
Aug 08 Javascript
使用jquery给指定的table动态添加一行、删除一行
Oct 13 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
js实现多行文本框统计剩余字数功能
Mar 28 Javascript
ES6数组的扩展详解
Apr 25 Javascript
javascript显示动态时间的方法汇总
Jul 06 Javascript
vue之延时刷新实例
Nov 14 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
Apr 09 Javascript
利用JQuery为搜索栏增加tag提示
Jun 22 #Javascript
web 页面分页打印的实现
Jun 22 #Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 #Javascript
实现超用户体验 table排序javascript实现代码
Jun 22 #Javascript
js 单引号 传递方法
Jun 22 #Javascript
使弱类型的语言JavaScript变强势
Jun 22 #Javascript
Javascript 代码也可以变得优美的实现方法
Jun 22 #Javascript
You might like
php获取根域名方法汇总
2014/10/28 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
2014/09/09 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
微信小程序 解决swiper不显示图片的方法
2017/01/04 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
解决DataFrame排序sort的问题
2018/06/07 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
Volcom法国官网:美国冲浪滑板品牌
2017/05/25 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
会计系个人求职信范文分享
2013/12/20 职场文书
证婚人搞笑证婚词
2014/01/10 职场文书
小学生表扬稿范文
2015/05/05 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书