`

转】 《15天学会Jqurey》之第七天--样式表切换

阅读更多
转载自 jiangqincong
最终编辑 jiangqincong

我第一次看到样式表切换器是在A List Apart或者Simple Bits,那是两个设计师最应该去的网站。

从那以后,我找到了很多可以让访客通过鼠标点击某个地方切换样式表的方法。但最近我要写一篇如何 使用jQuery编写简单代码实现它的教程。

我将向你们逐步解说整个的过程,不仅仅因为要展示jQuery代码的简介,同时也要揭示jQuery库中的若干高级特性。

首先,代码

$(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]').each(function(i)
{
this.disabled = true;
if (this.getAttribute('title') == styleName) this.disabled = false;
});
createCookie('style', styleName, 365);
}
 
$(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]).each(function(i)
{
this.disabled = true;
if (this.getAttribute(‘title’) == styleName) this.disabled = false;
});
createCookie(’style’, styleName, 365);
}

其他这里没有提到的部分是你将在后面看到的创建和读取cookie的函数。

熟悉的开篇

$(document).ready(function()
{
$('.styleswitch').click(function()

告诉jQuery“以最快的速度查找所有包含对象名‘styleswitch’的元素,并在他们被鼠标点击时执行一个函数”。

看起来不错。当鼠标点击预先指定的元素时,switchStylestyle函数将被调用。从现在开始是重点。

这句话什么意思?

第一次看到这句代码的时候我的脑子有些卡壳:

$('link[@rel*=style]').each(function(i) {

在互联网上搜索了一下后我空手而归。最后不得不找到了jQuery的作者John Resig,向他咨询。

他直接给了我一个jQuery网站的页面地址,里面讲解了若干jQuery提供的高级特性(xpath),可以用来查找并操作页面中的若干元素。

如果你看过这些东西你就能明白上面那句神秘的代码的含义是告诉jQuery“查找所有带rel属性并且属性值字符串中包含‘style’的link链接元素”。

嗯?

让我们看看如何编写包含一个主样式表,两个备用样式表的页面:

<link rel="stylesheet" type="text/css" href="styles1.css" title="styles1" media="screen" />
<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" />

我们可以看到所有样式表都含有一个包含‘style’字串的rel属性。

所以结果一目了然,jQuery轻松定位了页面中的样式表链接。

下一步?

each()函数将遍历所有这些样式表链接,并执行下一行中的代码:

this.disabled = true;
if (this.getAttribute('title') == styleName) this.disabled = false;

“首先禁用所有的样式表链接,然后开启任何title属性值与switchStylestyle函数传递过来的字串相同的样式表”

一把抓啊,不过很有效。

现在我们需要保证的是那些样式表存在并且有效。

完整代码和演示

既然 Kelvin Luck已经编写了这些代码,我就不在这里重复了。

DEMO

我相信Kelvin的灵感是从 这个网站那里得到的,我们正好可以看看使用其他工具实现这个功能是否要比jQuery

分享到:
评论

相关推荐

    jqurey使用方法总结

    写了一些jqurey的使用方法,比如给页面控件赋值,清空,获取值等书写格式。

    jqurey-1.2.6

    7. **兼容性**:jQuery致力于跨浏览器兼容,解决JavaScript在不同浏览器上的差异,使得开发者无需担心IE、Firefox、Chrome等浏览器间的兼容问题。 在"jquery-1.2.6.pack.js"文件中,`.pack.js`表示这是经过压缩和...

    jqurey 插件-很好的树和tab效果

    这里提到的"jqurey 插件-很好的树和tab效果"是针对jQuery的一些特定插件,旨在增强网站的用户体验,提供美观且功能丰富的树形视图和选项卡组件。 1. **simpleTree**:这是一个jQuery插件,用于创建可折叠的树状结构...

    jqurey API

    jQuery 的设计理念是“写得更少,做得更多”,这使得它成为前端开发人员的首选工具之一。 首先,jQuery的核心特性是选择器。它支持CSS1到CSS3的选择器,甚至包括一些特有的jQuery选择器,如`:first`、`:last`、`:...

    6小时玩转jqurey

    "6小时玩转jQuery"的课程旨在帮助初学者快速掌握jQuery的核心概念和技术,以便在实际项目中高效地使用。在这个课程中,我们将深入探讨以下几个关键知识点: 1. **jQuery基础知识**:首先,我们会介绍jQuery库的基本...

    jqurey例子

    这是个应用到struts2.0,freemarker,jqurey的ajax部分做的一个简单的小例子.发现jqurey是个很强大的东西.很好的封装了javascript可以更好的取元素,和做特效.我感觉应该是个算是个插件吧.应用很灵活就引入一个js...

    JQurey学习 Jquery特效

    对于轮播图,可以利用Slick或Bootstrap Carousel实现炫酷的切换效果;对于表单验证,jQuery Validation插件提供了强大的验证规则和错误提示。 总的来说,jQuery学习是提升网页开发效率的关键一步。掌握其基本用法和...

    JQurey语法实用

    JQuery可以实现动态网页的效果图

    jqurey图片切换

    **jQuery图片轮播**是一种常见的网页动态效果,用于展示多张图片并自动切换,为用户提供交互式的视觉体验。对于初学者来说,理解并实现这样的功能是掌握JavaScript和jQuery库的一个重要步骤。在这个教程中,我们将...

    Jqurey-easyui验证

    在开发Web应用时,数据验证是非常重要的一环,它可以确保用户输入的数据符合预期,从而避免错误或恶意输入。jQuery-easyUI提供了一种便捷的方式来实现前端验证,特别是对于远程Ajax校验,使得我们可以实时检查用户...

    jqurey 弹框源码,包括html文件和js文件

    此外,压缩包中的资源文件可能包括CSS样式表,用于美化弹框的外观,如边框、背景色、字体等。例如: ```css #dialog { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-...

    jqurey最新版本

    自2006年发布以来,jQuery迅速成为开发者最喜爱的工具之一,极大地推动了Web2.0的发展。"jqurey最新版本"指的是当前官方发布的最新稳定版jQuery库,通常包含了最新的功能改进、性能优化以及可能的安全修复。 在描述...

    jqurey鼠标经过例子

    `slideToggle()`方法会在鼠标经过时滑动切换子分类的可见性,`slideUp()`则在鼠标离开时迅速隐藏子分类。`stop()`用于防止连续快速移动时动画的堆叠。 以上仅为基本示例,实际应用中可能需要考虑更多的交互细节,如...

    jqurey学习

    jQuery的动画功能强大,`fadeIn()`, `fadeOut()`, `slideToggle()`等方法可以实现淡入淡出、滑动切换等效果。`animate()`方法允许自定义动画效果,如改变元素的位置、大小、透明度等。 六、Ajax交互 jQuery的`$....

    表白网页-js-jqurey

    CSS文件则负责样式设计,让网页看起来更具吸引力;JavaScript文件则处理动态效果和交互逻辑;如果是图片或音频,可能是为了营造浪漫的背景。 在实际开发中,开发者会结合HTML来定义网页的结构,CSS来定义网页的样式...

    jqurey-ui-1.8.23最新版官方下载

    3. 主题资源:预设的主题样式,可以快速改变UI外观,同时也支持自定义主题。 4. 示例:实例代码展示了如何使用各个组件,是学习和参考的好资料。 安装jQuery UI时,需要确保先引入jQuery库,然后在HTML文件中链接...

    HTML+CSS + Jqurey 导航网

    在导航网的实现中,jQuery可以帮助我们实现更复杂的交互功能,如动态显示和隐藏下拉菜单,实现鼠标悬停或点击时的导航切换效果。例如,可以使用`.hover()`方法来监听鼠标悬停事件,`.show()`和`.hide()`来控制元素的...

    一个非常漂亮的Jqurey大图幻灯片

    在压缩包内的“幻灯片”文件中,可能包含了HTML示例文件、CSS样式表和必要的JavaScript脚本。开发者需要将这些资源导入到自己的项目中,并根据需求调整代码。例如,修改幻灯片图片,可以直接在HTML文件中替换对应的`...

    未美化的三级下拉菜单,jQurey动态缓冲效果.rar

    未美化的三级下拉菜单,jQurey动态缓冲效果,这是一个常见的三级下拉导航,动感的三级菜单,鼠标放到菜单上,会滑出对应的二级菜单,放在二级菜单上,会继续滑出三级菜单,简约的动画效果让菜单变得更加大气、灵动,...

Global site tag (gtag.js) - Google Analytics