`

jQuery实现无刷新切换主题皮肤功能

阅读更多

主题皮肤切换功能在很多网站和系统中应用,用户可以根据此功能设置自己喜欢的主题颜色风格,增强了用户体验。本文将围绕如何使用jQuery实现点击无刷新切换主题皮肤功能。

查看演示DEMO

实现该功能的原理就是通过点击定义的主题样式,改变页面当前引用的主题CSS文件,并且将当前的主题样式写入cookie中或者写入数据库中,以便下次该用户重新访问页面时,调用的就是上次设置好的主题样式。

准备主题皮肤样式

首先,我准备了三个样式表CSS文件,分别是三种风格的主题皮肤,将其引入页面,放置在页面的<head>之间。

<link title="default" rel="stylesheet" type="text/css" href="css/default.css" /> 
<link title="blue" rel="stylesheet" type="text/css" href="css/blue.css" disabled="disabled" /> 
<link title="brown" rel="stylesheet" type="text/css" href="css/brown.css" disabled="disabled" /> 

注意我给每个<link>添加了title属性,是由用处的,另外我禁用了第2个和第3个CSS文件,就是默认起作用的是第1个CSS文件。

XHTML

<ul id="styles"> 
    <li id="default">经典</li> 
    <li id="blue">淡蓝</li> 
    <li id="brown">棕色</li> 
</ul> 

三种主题风格用于点击切换,注意我分别给每个li加了id属性。

CSS

ul#styles{margin-top:10pxul#styles li{float:leftwidth:50pxheight:40pxline-height:40pxpadding:2px;  
margin-left:10pxborder:1px solid #ffftext-align:centercolor:#fffcursor:pointerul#styles li.cur{border:1px solid #369background-image:url(images/selected.gif);  
background-repeat:no-repeatbackground-position:4px 32pxul#styles li#default{background-color:#162934;} 
ul#styles li#blue{background-color:#90c5e7ul#styles li#brown{background-color:#601f00

用CSS渲染XHTML,其中ul#styles li.cur是指当前主题选中下的样式,我用一个小勾表示当前选中的主题。

jQeury

首先我们要引入jquery库和jquery.cookie插件。jquery.cookie插件为jQuery提供了强大的cookie操作功能,你不用去写复杂的原生的javascript,只管直接调用该插件就行。关于该插件的使用,请阅读本站文章:使用jQuery操作Cookies

<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/jquery.cookie.js"></script> 

接下来,当用户点击切换选择主题时,要发生以下动作:获取选择的主题(id),查看引用的CSS文件,如果发现其title属性值正好与当前选中的主题id值相等,则应用该主题CSS文件,同时将其他引用的CSS文件禁用,并且将当前选中的主题写入cookie中,设置cookie过期时间,最后将当前选中的主题按钮(li)设置为当前选中状态。具体看下面的代码:

$("#styles li").click(function(){ 
    var style = $(this).attr("id"); 
    $("link[title='"+style+"']").removeAttr("disabled"); 
    $("link[title!='"+style+"']").attr("disabled","disabled"); 
    $.cookie("mystyle",style,{expires:30}); 
    $(this).addClass("cur").siblings().removeClass("cur"); 
}); 

注意,在本例中我将选中的样式保存在用户cookie中,cookie名称为”mystyle“,值为当前选中的主题值,过去时间为30天,即:expires:30

接着需要做的是页面载入时,读取主题cookie值,如果主题cookie存在则调用cookie值对应的主题样式CSS文件,并且设置当前主题按钮状态为选中状态,反之,则调用默认样式。代码如下:

var cookie_style = $.cookie("mystyle"); 
if(cookie_style==null){ 
    $("link[title='default']").removeAttr("disabled"); 
    $("#styles li#default").addClass("cur"); 
}else{ 
    $("link[title='"+cookie_style+"']").removeAttr("disabled"); 
    $("#styles li[id='"+cookie_style+"']").addClass("cur"); 
    $("link[title!='"+cookie_style+"']").attr("disabled","disabled"); 
} 

将以上两段代码加入到$(function(){})中,工作到此完成,去看看效果吧。

值得一提的是,本文应用的cookie记录用户所选择设置的主题皮肤样式,但是当cookie到期或者用户清除了浏览器的COOKIE,亦或者用户换用其他浏览器浏览时,当前设置的主题就会失效。为了让用户永久保存选择的主题样式,必须将所选的主题与用户信息对应,并写入数据库,下次该用户登录就可以直接读取主题,当然,该方法应用在有用户权限范围的系统,如后台管理系统,个人中心等。

声明:本文为原创文章,helloweba.com和作者拥有版权,如需转载,请注明来源于helloweba.com并保留原文链接,否则视为侵权。
分享到:
评论

相关推荐

    jQuery无刷新切换主题皮肤实例讲解

    jQuery无刷新切换主题皮肤是一种常见的网页交互功能,它允许用户在不刷新页面的情况下更改网站的外观和风格。这种功能通过JavaScript库jQuery实现,通常结合cookie技术来存储用户的偏好,以便他们在下次访问时仍然能...

    jquery实现网页换肤

    为了实现完整的换肤功能,我们需要编写一段jQuery代码,这部分代码会监听用户的皮肤选择事件,然后更新CSS链接和保存用户偏好。同时,代码还会检查cookies,如果存在之前的选择,那么在页面加载时自动应用该皮肤。 ...

    jQuery实现网站换肤功能.zip

    本项目"jQuery实现网站换肤功能.zip"就是这样一个示例,通过结合HTML、CSS和JavaScript,实现了动态更换网站主题色的效果。 首先,我们从`index.html`文件开始。这是网站的主页面,通常包含HTML结构以及引用外部CSS...

    Web聊天室 基于jQuery新皮肤随机聊天功能.zip

    1. **实时聊天**:利用Ajax实现无刷新聊天,用户可以即时发送和接收消息。 2. **新皮肤**:聊天室可能提供多种视觉主题或皮肤,用户可以随机切换,增加使用乐趣。 3. **随机功能**:可能有一个随机切换皮肤的按钮,...

    在Ajax程序中实现无刷新换肤功能(asp.net2.0

    在Ajax程序中实现无刷新换肤功能是提升用户体验的重要手段,尤其是在ASP.NET 2.0框架下。这种技术允许用户更改网站的外观和感觉而无需重新加载整个页面,从而提供了流畅且快速的交互体验。本文将详细介绍如何在ASP...

    jQuery切换网页皮肤并保存到Cookie示例代码

    4. **页面无刷新皮肤切换**:示例代码展示了无需刷新页面即可实现皮肤切换的方法。这不仅提升了用户体验,还可以让页面的交互更加流畅。 5. **HTML和CSS的基本结构**:通过给出的代码片段,我们可以了解到一个简单...

    Tab可切换皮肤的后台模板_aspx开发教程.rar

    3. **Ajax技术**:为了实现动态加载和无刷新切换,可能使用了Ajax技术。AjaxControlToolkit提供了对Ajax功能的良好支持,使得Tab切换无需重新加载整个页面。 4. **皮肤和CSS**:在ASP.NET中,皮肤(Skin)是一种...

    腾讯网首页无刷新换肤JS代码

    "腾讯网首页无刷新换肤JS代码"就是这样一个例子,它通过JavaScript实现网页主题颜色和风格的即时切换,而无需用户手动刷新页面。 首先,我们要理解“无刷新”(Ajax,Asynchronous JavaScript and XML)的概念。这...

    jQuery仿百度首页换肤背景图片切换代码.rar

    本项目“jQuery仿百度首页换肤背景图片切换代码”旨在实现一个类似百度首页的背景图片切换功能,使用户界面更加美观且交互性更强。以下是基于这个项目的关键知识点和技术细节: 1. **jQuery库的使用**: jQuery的...

    jQuery仿百度首页换肤功能特效代码

    【jQuery仿百度首页换肤功能特效代码】是一种利用JavaScript库jQuery实现的网页界面换肤效果,灵感来源于百度首页的设计。这种特效允许用户在网站上轻松切换不同的背景图片,为用户提供个性化的浏览体验,同时增强...

    jQuery分页插件Pagination.zip

    jQuery分页插件Pagination是一个强大的工具,用于在网页中实现高效的数据分页功能。它以其灵活性、可定制性和丰富的功能而受到开发者的欢迎。在网页设计中,当数据量过大时,分页是必不可少的,它能帮助用户更有效地...

    Jquery超帅气播放器

    通过Ajax技术,它还能实现音频和视频的无缝切换,无需刷新页面即可加载新的媒体文件,提升了用户的浏览体验。 为了实现这些功能,开发者通常会利用jQuery的事件监听和DOM操作。例如,使用`$(element).click()`绑定...

    jquery四色网页换肤代码

    在实际应用中,可能会有多个这样的图片文件,代表不同的皮肤主题。 3. **使用说明.txt**:这个文件提供了关于如何使用这个换肤代码的指南。通常会包含如何集成到项目中、如何添加新的皮肤等步骤。 4. **更多广告...

    dwz jquery 后台界面框架

    9. **Ajax无刷新交互**:DWZ鼓励使用Ajax进行页面更新,实现无刷新的用户体验。开发者需要了解Ajax的工作原理和DWZ中的Ajax接口。 10. **插件扩展**:DWZ允许开发者自定义和扩展功能,如引入第三方图表库、富文本...

    jquery四色网页换肤代码.zip

    【jQuery四色网页换肤代码】是一个用于网页界面动态切换不同主题颜色的JavaScript实现,主要依赖于jQuery库。这个功能通常被用于提供用户自定义界面风格的选项,增强用户体验。在给定的压缩包文件中,包含了一些关键...

    网站动态更换皮肤(Asp.net)

    6. **JavaScript和jQuery**: 为了实现更流畅的用户体验,可以使用JavaScript或jQuery来实现实时的皮肤切换,而无需页面刷新。例如,通过更改DOM元素的class属性来应用新的CSS样式。 7. **Web.config配置**: 如果...

    JQuery 网站换肤功能实现代码

    虽然具体的实现代码没有附上,但根据描述,可以了解到这是一个完整的换肤功能实现,包括用户界面交互、样式表切换和持久化存储用户选择等。 通过上述知识点,我们可以得出一个结论:使用jQuery来实现网站的换肤功能...

    jquery ui仿腾讯web qq界面desktop酷炫特效

    4. **主题(Theme)**:为了营造出与腾讯Web QQ类似的视觉效果,开发者可能使用了jQuery UI的主题定制工具,创建了一套符合QQ风格的皮肤。jQuery UI支持自定义CSS,可以调整颜色、字体和布局等细节,实现与目标界面...

Global site tag (gtag.js) - Google Analytics