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 相关文章推荐
jquery select选中的一个小问题
Oct 11 Javascript
jquery获取tr并更改tr内容示例代码
Feb 13 Javascript
JavaScript监听和禁用浏览器回车事件实例
Jan 31 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
Aug 28 Javascript
跟我学习javascript的Date对象
Nov 19 Javascript
js的三种继承方式详解
Jan 21 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
总结js函数相关知识点
Feb 27 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 Javascript
Vue的自定义组件不能使用click方法的解决
Jul 28 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/01/31 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
PHP实现小程序批量通知推送
2018/11/27 PHP
一些不错的js函数ajax
2008/08/20 Javascript
jQuery技巧总结
2011/01/01 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
python计算一个序列的平均值的方法
2015/07/11 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python实现机器学习之多元线性回归
2018/09/06 Python
python实现猜单词游戏
2020/05/22 Python
Python如何重新加载模块
2020/07/29 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
学生会竞选自荐信
2013/10/12 职场文书
学生打架检讨书
2014/02/14 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
委托书范本
2014/09/13 职场文书
科学发展观标语
2014/10/08 职场文书
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
Python Pygame实战之塔防游戏的实现
2022/03/17 Python
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫