用jQuery制作页面风格切换开关
越来越多网站已经通过让访客自己选择页面风格来提高访客体验。这次我们利用jQuery这把锋利的剑来实现这个功能。
首先,在header加入几个风格链接是必须的。
<link rel="stylesheet" type="text/css" href="styles1.css" title="styles1" media="screen" /> /*记得为候选风格加上rel="alternate",否则会引起冲突*/ <link rel="alternate stylesheet" type="text/css" href="styles2.css" title="styles2" media="screen" /> <link rel="alternate stylesheet" type="text/css" href="styles3.css" title="styles3" media="screen" />
接下来在页面里加上开关链接,按下面的格式写
<a href="serversideSwitch.html?style=style1" rel="styles1" class="styleswitch">styles1</a> <a href="serversideSwitch.html?style=style2" rel="styles2" class="styleswitch">styles2</a> <a href="serversideSwitch.html?style=style3" rel="styles3" class="styleswitch">styles3</a>
最后进行最关键的一部分,写脚本
(function($) { $(document).ready(function() { $('.styleswitch').click(function() { switchStylestyle(this.getAttribute("rel")); return false; }); var c = readCookie('style'); if (c) switchStylestyle(c); }); function switchStylestyle(styleName) { $('link[@rel*=style][title]').each(function(i) { this.disabled = true; if (this.getAttribute('title') == styleName) this.disabled = false; }); createCookie('style', styleName, 365); //把风格设置记录到cookie,并设置失效时间 } })(jQuery); //创建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 readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } //清除cookie function eraseCookie(name) { createCookie(name,"",-1); }
好了,想熟悉的话,自己动手,由于时间关系,我没有做DEMO,请谅解。
原文链接:http://www.kelvinluck.com/2006/05/switch-stylesheets-with-jquery/






沙发?
看不懂了,怎么调用的不同的样式的呢
嘿嘿 不知道我用的上不!我的博客正好两个风格!
看来我是时候花点时间学校jQuery了,不然什么都看不懂
我喜欢现成的东西
只是看代码我啥也看不懂,不过直接copy paste应该就行了
哈哈~学习了~
我之前是写在同一个文件,通过换body的class换风格的~
呵呵,由于服务器的原因~完全没想法~
这个厉害了,是技术哦
不错 COOKIE传值
这个就类似DISCUZ的切换吧,MG的一个主题也有这功能,不过对于博客来说,用处不大。
我过我自己的倒是考虑加上,每篇日志的标题有背景,可以切换颜色玩玩。
原来样式还有“this.disabled = true;” 这么个属性控制啊?呵,了解了。。
切换皮肤是用cookie实现的,不错。。
看到了很是感动
这个主题挺好看的!
这种做法不错,或许也可以考虑用jQuery按照时间判断来自动换肤哈哈,比如中午的时候色彩比较亮,到晚上的时候比较暗,或者也可以考虑按照季节更换.