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 相关文章推荐
ext 同步和异步示例代码
Sep 18 Javascript
jQuery之$(document).ready()使用介绍
Apr 05 Javascript
两个数组去重的JS代码
Dec 04 Javascript
jquery中的on方法使用介绍
Dec 29 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
浅析JavaScript 调试方法和技巧
Oct 22 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
Dec 28 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
Javascript实现的StopWatch功能示例
Jun 13 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
Dec 12 Javascript
浅谈ECMAScript 中的Array类型
Jun 10 Javascript
微信小程序实现音乐播放页面布局
Dec 11 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编程与应用
2006/10/09 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
定义select的边框颜色
2008/04/28 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
python控制台中实现进度条功能
2015/11/10 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
对Python w和w+权限的区别详解
2019/01/23 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
mac使用python识别图形验证码功能
2020/01/10 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
社区包粽子活动方案
2014/01/21 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
挂职个人工作总结
2015/03/05 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
小学运动会开幕词
2016/03/04 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript