`

写给设计人的10个jQuery特效【转】

 
阅读更多
转载于:http://www.kuqin.com/webpagedesign/20080615/9560.html
jQuery已经不是什么新鲜的事儿,记得第一次听说是在catch the digital flow上。总把它认为是非常难的东西,也就没有认真去了解他了。直到学完CSS的大部分内容,才开始接触这种"write less, do more" 的Javascrīpt框架。今天,这篇文章的最重要内容是来自Web Designer Wall的一篇教程,一篇包含了10个jQuery特效的教程。这里不打算全文翻译,想以自己的语言来表达,或许这样更方便大家理解/自己以后学习,也可能更准确地描述。

提示:教程中所用的 jQuery 版本为1.2.3。这篇文章是为jQuery新手而写的。

先试试看? View jQuery Demos | Download Demo ZIP
jQuery是如何工作的?

首先,你需要下载一个jQuery版本,并将它插入到<head>标签内。然后,你将需要写函数来告诉jQuery做些什么,下面的这个图表将告诉你jQuery是怎样工作的(点击图片,查看大图):

jquery-how-it-works
如何获取元素(Get the element)?

书写 jQuery 函数是一个非常简单的事(多亏了精彩的说明书)。关键是你要学习如何获取你想要实现的效果的确切元素。

    $("#header") = 获取 id="header" 的元素
    $("h3") = 获取所有<h3>
    $("div#content .photo") = 获取<div id="content">里所有用class="photo"定义的元素
    $("ul li") = 获取所以 <ul> 中 <li> 的元素
    $("ul li:first") = 只获取<ul>中第一个<li>

1. 简单的下拉面板

让我们来开始这个简单的下拉面板特效吧(view demo),或许你已经见过很多次,现在,自己试试吧:

sample1

当包含class="btn-slide"的元素被点击,它会下拉/上提<div id="panel">里的元素。然后切换到CSS中的class="active"到<a class="btn-slide">元素。.active 将会以CSS的方式打开/关闭出面板。

$(document).ready(function(){

$(".btn-slide").click(function(){   $("#panel").slideToggle("slow");   $(this).toggleClass("active"); });

});

2. 简单的隐藏效果

如图,当右上角的上图标被点击时,内容被隐藏。效果可以看Demo (view demo)

sample2

当被定义为 <img class="delete"> 的图片被点击,它会手找到父级元素 <div class="pane"> 并激活它的能力,慢慢消失,隐藏起来。

$(document).ready(function(){

$(".pane .delete").click(function(){   $(this).parents(".pane").animate({ opacity: "hide" }, "slow"); });

});

3 连续过渡效果

让我们来看看jQuery连贯性的威力吧。只需要几行代码,我能让这个方块渐变+缩放比例地飞来飞去(view demo)

multi-animation

Line 1: 当 <a class="run"> 被点击
Line 2: 激活 <div id="box"> 的不透明度(opacity)=0.1,直到值达到400px,速度达到1200px/ms
Line 3: 当opacity=0.4, top=160px,height=20,width=20,以"slow"显示
Line 4: 当opacity=1, left=0, height=100, width=100,也以"slow"显示
Line 5: 当opacity=1, left=0, height=100, width=100, 也以"slow"显示
Line 6: 当top=0, 以"fast"显示
Line 7: 然后,以常速上滑 (default speed = "normal")
Line 8: 然后以"slow"下滑
Line 9:返回失效会阻止浏览器跳向链接锚点

$(document).ready(function(){

$(".run").click(function(){

  $("#box").animate({opacity: "0.1", left: "+=400"}, 1200)   .animate({opacity: "0.4", top: "+=160", height: "20", width: "20"}, "slow")   .animate({opacity: "1", left: "0", height: "100", width: "100"}, "slow")   .animate({top: "0"}, "fast")   .slideUp()   .slideDown("slow")   return false;

});

});

4a. 可折叠的模式 #1

这是第一个可折叠的样式, (view demo)

sample3

第一行将向<div class="accordion"> 内的第一个<H3> 添加一个CSS class为"active"的值。 第二行刚是隐藏<div class="accordion">内非第一个< p >的内容。

当 <h3> 被点击时,当前<p>下拉,而原先下拉的<p> 上提。

$(document).ready(function(){

$(".accordion h3:first").addClass("active"); $(".accordion p:not(:first)").hide();

$(".accordion h3").click(function(){

  $(this).next("p").slideToggle("slow")   .siblings("p:visible").slideUp("slow");   $(this).toggleClass("active");   $(this).siblings("h3").removeClass("active");

});

});

4b. 可折叠模式 #2

这个实例与#1非常类似,不过,它会让指定的面板像默认面板一样打开(view demo)

在CSS样式表中,设置.accordion p 为 display:none。现在,如果你像默认打开的样式一样,打开第三个面板,你可以写$(".accordion2 p").eq(2).show(); (eq = equal)来实现它,需要注意的是起始点是"0",而不是"1",所以,第三个相应的是"2",而不是"3"。

$(document).ready(function(){

$(".accordion2 h3").eq(2).addClass("active"); $(".accordion2 p").eq(2).show();

$(".accordion2 h3").click(function(){   $(this).next("p").slideToggle("slow")   .siblings("p:visible").slideUp("slow");   $(this).toggleClass("active");   $(this).siblings("h3").removeClass("active"); });

});

5a. 鼠标经过激活效果 #1

这个将会实现一个非常漂亮的,当鼠标经过时出现渐变出现的效果 (view demo)

sample4

当鼠标经过菜单时,它会寻找紧接着的<em>,并在上方激活它的不透明度。

$(document).ready(function(){

$(".menu a").hover(function() {   $(this).next("em").animate({opacity: "show", top: "-75"}, "slow"); }, function() {   $(this).next("em").animate({opacity: "hide", top: "-85"}, "fast"); });

});

5b. 鼠标经过激活 #2

这个实例会显示菜单中链接的title 属性attribute,让其以变数方式存在,并添加<em>标签 (view demo)

sample4b

第一行会添加一个空的<em>到菜单的<a>元素。

当鼠标经过菜单链接时,它会显示title的属性,让它以"hoverText(隐藏)"的形式显示,并使<em>中的文字显示隐藏文本的值。

$(document).ready(function(){

$(".menu2 a").append("<em></em>");

$(".menu2 a").hover(function() {   $(this).find("em").animate({opacity: "show", top: "-75"}, "slow");   var hoverText = $(this).attr("title");   $(this).find("em").text(hoverText); }, function() {   $(this).find("em").animate({opacity: "hide", top: "-85"}, "fast"); });

});

6. 整块可点击性效果

这个实例将会教你如何实现内容中元素可点击性效果,Best Web Gallery的侧边栏Tab就显示这样的效果 (view demo)

sample5

如果你想让class="pane-list"的<ul>内的 <li> 可点击(整块),你可以向 ".pane-list li"指派一个函数,使它被点击时,函数找到 <a>元素,重定向到它的href属性值。

$(document).ready(function(){

$(".pane-list li").click(function(){   window.location=$(this).find("a").attr("href"); return false; });

});

7. 可收缩面板

让我们组合一下上面的实例,创造一给可收缩的面板(像Gmai收件箱面板l)。作者还在Web Designer Wall 的评论列表Next2Friends里应用这个(view demo)

sample6

First line: 隐藏<div class="message_body">里第一个元素以后的元素
Second line: 隐藏所有第5个<li>后面的元素
Third part: 当<p class="message_head">被点击里,显示/隐藏<div class="message_body">
Fourth part: 当<a class="collpase_all_message"> 被点击时,上提所有<div class="message_body">的元素
Fifth part: 当<a class="show_all_message"> 被点击,隐藏它,并显示<a class="show_recent_only">,并下拉第5个<li>以后的元素
Sixth part: 当<a class="show_recent_only"> 被点击时,隐藏它,并显示<a class="show_all_message">,并上提第5个 <li>以后的元素

$(document).ready(function(){

//hide message_body after the first one $(".message_list .message_body:gt(0)").hide();

//hide message li after the 5th $(".message_list li:gt(4)").hide();

//toggle message_body $(".message_head").click(function(){   $(this).next(".message_body").slideToggle(500)   return false; });

//collapse all messages $(".collpase_all_message").click(function(){   $(".message_body").slideUp(500)   return false; });

//show all messages $(".show_all_message").click(function(){   $(this).hide()   $(".show_recent_only").show()   $(".message_list li:gt(4)").slideDown()   return false; });

//show recent messages only $(".show_recent_only").click(function(){   $(this).hide()   $(".show_all_message").show()   $(".message_list li:gt(4)").slideUp()   return false; });

});

8. 模仿WordPress后台评论管理面板

我想你可能见过最多次这个效果是在Wordpress后台的评论管理面板。那好,让我们来用jQuery来模仿它的效果。为了实现背景颜色,你需要包含Color Animations这个插件(view demo)

sample

First line: 向<div class="pane"> 添加 "alt" class
Second part: 当<a class="btn-delete">被点击,激活<div class="pane">的不透明度
Third part: 当<a class="btn-unapprove">被点击, 首先让<div class="pane">显示黄色,然后变为白色,并添加类(addClass)"spam"
Fourth part: 当<a class="btn-approve">被点击,首先让<div class="pane">显示绿色,然后变为白色,并移除类(removeClass)"spam"
Fifth part: 当<a class="btn-spam">被点击,激活背景色为red并使其opacity ="hide"

//don’t forget to include the Color Animations plugin//<script type="text/javascript" src="jquery.color.js"></script>

$(document).ready(function(){

$(".pane:even").addClass("alt");

$(".pane .btn-delete").click(function(){   alert("This comment will be deleted!");

  $(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")   .animate({ opacity: "hide" }, "slow")   return false; });

$(".pane .btn-unapprove").click(function(){   $(this).parents(".pane").animate({ backgroundColor: "#fff568" }, "fast")   .animate({ backgroundColor: "#ffffff" }, "slow")   .addClass("spam")   return false; });

$(".pane .btn-approve").click(function(){   $(this).parents(".pane").animate({ backgroundColor: "#dafda5" }, "fast")   .animate({ backgroundColor: "#ffffff" }, "slow")   .removeClass("spam")   return false; });

$(".pane .btn-spam").click(function(){   $(this).parents(".pane").animate({ backgroundColor: "#fbc7c7" }, "fast")   .animate({ opacity: "hide" }, "slow")   return false; });

});

9. 轮换图片展栏

如果你有一个项目需要显示多个图片,并且你不希望链向另一个页面,那么你可以在当前面加载目标链接的JPG(view demo)

sample8

首先,添加一个<em>到H2标签。

当<p class=thumbs>内的元素被点击:
- 以可视的形式显示href属性的"largePath"路径
- 以可视的形式显示title 属性的"largeAlt"
- 代换<img id="largeImg">的scr属性内可视的"largePath"路径,并代换alt属性内可视的"largeAlt"
- 设置em内的内容(h2内) 为可视的largeAlt

$(document).ready(function(){

$("h2").append(‘<em></em>’)

$(".thumbs a").click(function(){

  var largePath = $(this).attr("href");   var largeAlt = $(this).attr("title");

  $("#largeImg").attr({ src: largePath, alt: largeAlt });

  $("h2 em").html(" (" + largeAlt + ")"); return false; });

});

10. 个性化不同的链接样式

在现代化的浏览器中,个性化不同的链接是非常容易的事,比如想让.pdf文件显示特殊的样式,你只需要添加上简单的CSS规则:a[href $=".pdf"] { … }就可以实现,但不幸的是IE6并不支持这个。如果想实现这个,你可以利用jQuery (view demo)

sample9

前三行代码必需是连续的,它只是一个<a>的href属性中的一个CSS class。

第二部分将会获取所有href中没有"http://www.webdesignerwall.com" 和/或没有"#"的< a>元素,并添加"external" class和target= "_blank"。

$(document).ready(function(){

$("a[@href$=pdf]").addClass("pdf");

$("a[@href$=zip]").addClass("zip");

$("a[@href$=psd]").addClass("psd");

$("a:not([@href*=http://www.webdesignerwall.com])").not("[href^=#]")   .addClass("external")   .attr({ target: "_blank" });

});
分享到:
评论

相关推荐

    jQuery 3D旋转明星人物展示特效.zip

    "jQuery 3D旋转明星人物展示特效"就是一个很好的例子,它利用jQuery库实现了明星图片的3D旋转展示,为用户带来了独特的视觉体验。该特效是基于jQuery 1.10.2版本开发的,适用于百度换肤活动,通过鼠标点击触发,可以...

    jQuery圆形转动切换文字说明动画特效

    总结来说,这个jQuery圆形转动切换文字说明动画特效利用了HTML结构、CSS样式和jQuery脚本三者结合,创造了一个动态且吸引人的文字展示方式,适用于网站公告、产品特性介绍等场景。通过调整HTML结构、CSS样式和...

    JQuery特效

    写过设计人的10个Jquery特效,一些比较经典的特效

    jQuery 3D旋转明星人物展示特效

    本教程将深入探讨如何利用jQuery实现一个3D旋转的明星人物展示特效,这个特效可以广泛应用于网站的封面、互动展示或者明星介绍板块,提升用户体验。 首先,我们需要理解3D旋转的基础概念。在Web开发中,3D旋转是CSS...

    使用jquery实现各种特效

    在JavaScript的世界里,jQuery是一个非常流行且强大的库,它极大地简化了DOM操作、事件处理、动画效果和Ajax交互。本教程将重点介绍如何使用jQuery来实现各种特效,以提升网页的用户体验。 首先,我们来看看“3D...

    jquery实现的图片展示特效

    本资源"jquery实现的图片展示特效"是利用jQuery来创建吸引人的图片展示效果的实例,适合前端开发者学习和借鉴。 jQuery 的图片展示特效通常涉及到以下几个关键技术点: 1. **动态加载**:jQuery 可以帮助我们根据...

    AnG无双科技首页jQuery特效.zip

    【标题】"AnG无双科技首页jQuery特效.zip"是一个包含使用jQuery库实现的动态效果的代码资源。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作以及Ajax交互等任务。这个特效是针对...

    jQuery实现的产品自动360度旋转展示特效源码.zip

    本资源"jQuery实现的产品自动360度旋转展示特效源码.zip"提供了一种利用jQuery创建360度产品旋转展示效果的方法。这种特效在电商网站上特别常见,能增强用户体验,使用户可以全方位地查看产品细节。 首先,jQuery的...

    AnG无双科技首页屏风jQuery特效,6个人物可任意切换,点击并展示详细内容,非常适合企业首页展示

    本文将深入探讨“AnG无双科技首页屏风jQuery特效”,这是一个专为企业首页设计的互动展示方案。 首先,"AnG无双科技首页屏风jQuery特效"是一种视觉上引人入胜的设计,它利用jQuery的灵活性和功能,创建了一个6个...

    Tab标签选项卡切换jQuery特效.zip

    "Tab标签选项卡切换jQuery特效.zip"是一个专门针对这一需求的资源包,它提供了两种不同的切换效果,使得网页交互更加生动和吸引人。 首先,我们要理解jQuery的基本概念。jQuery是一个快速、简洁的JavaScript库,...

    Jquery特效之超炫图片翻转

    本主题将深入探讨“Jquery特效之超炫图片翻转”这一技术,这是一种能够提升网站视觉吸引力的创新方法。 首先,我们要理解jQuery的核心特性:选择器、事件处理、DOM操作和动画效果。jQuery的选择器类似于CSS,可以...

    jquery_十大特效

    在JavaScript的世界里,jQuery是一个非常流行且功能强大的库,它极大地简化了DOM操作、事件处理、动画效果以及AJAX交互。本篇文章将聚焦于jQuery的十大经典特效,这些特效不仅展示了jQuery的魅力,也是许多Web开发者...

    jquery圆形旋转特效.zip

    本项目“jquery圆形旋转特效.zip”显然关注的是利用jQuery创建动态、吸引人的用户界面,特别是圆形旋转效果。这个效果通常用于制作加载指示器、菜单项或者吸引用户注意力的视觉元素。 首先,我们需要理解CSS在实现...

    jquery html5三维线性人物关系图特效代码

    "jQuery HTML5三维线性人物关系图特效代码"就是这样一个工具,它利用jQuery库和HTML5的技术,实现了动态、立体的人物关系展示,帮助用户更直观地理解人物之间的联系。 jQuery是一个广泛使用的JavaScript库,它简化...

    jQuery Select下拉框美化特效.zip

    该特效主要基于JavaScript库jQuery实现,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画制作以及Ajax交互等任务。通过jQuery,开发者可以快速地为网站添加各种动态效果和交互功能。 这个...

    jquery弹出层特效

    在IT行业中,jQuery是一个非常流行的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互。本文将详细探讨"jquery弹出层特效"这一主题,以及相关文件如何实现这一功能。 首先,标题"jquery弹出层...

    jQuery特效代码

    "jQuery特效代码"这个主题主要涵盖了jQuery在实现动态效果和交互方面的应用,尤其是“无缝滚动”和“图片轮换”这两项常见的网页特效。 首先,我们来了解一下jQuery的动画功能。jQuery提供了多种内置的动画方法,如...

    jqueryScript 特效 jqueryScript js

    jQueryScript的核心是jQuery库,一个广泛使用的开源JavaScript库,它的语法设计目标是“write less, do more”。 **jQuery库的基本概念** 1. **选择器**: jQuery的选择器借鉴了CSS的语法,允许开发者快速选取页面...

    jquery环形3D立体旋转特效.rar

    在C#标签的背景下,虽然C#主要用于服务器端开发,如ASP.NET,但与前端的jQuery特效关联不大。不过,服务器端的C#代码可能通过AJAX交互来控制前端的旋转效果,例如改变旋转速度、方向或展示特定的元素。 实现jQuery...

Global site tag (gtag.js) - Google Analytics