《jQuery基础教程》-- 样式与动画
来源:互联网 发布:淘宝网怎么买罂粟种子 编辑:程序博客网 时间:2024/06/06 21:27
1.使用css方法来设置或获得样式。
例如:
var $speech = $('.speech');var defaultSize = $speech.css('font-size');这里使用css方法,仅带了一个参数,所以这里就是获得样式,类似于getter方法。
如果带了两个参数,那就类似于setter方法了。用途就是设置样式。
例如:
$speech.css('font-size',fontSizeNum);这里使用css方法设置speech的font-size样式的内容为fontSizeNum。
这个fontSizeNum是一个值,单就本例来说,可以是14,也可以是‘14 px’。都没有问题的。
2.使用hide和show方法隐藏或者显示元素。
例如:
var $more = $('a.more');$more.nextAll().hide();$more.click(function(){$more.nextAll().show();$(this).hide();return false;});这里指定了a标签的一个class为more。初始的时候,通过hide方法,隐藏了其后的元素。然后通过点击事件,使用show方法显示其后的元素并且隐藏自己。
return false是为了阻止链接触发。
在使用hide和show方法的时候可以给这2个方法传入两种参数,分别是:
字符串类型的“slow”,“normal”,“fast”,分别表示动画效果的时常,0.6,0.4,0.2s。
也可以是数值型的,如850.单位毫秒。
例如:hide(850);
3.使用渐变动画
上一个小标题使用hide和show的时候,如果加入参数,那么可以制造动画效果。动画效果不止hide和show,还有如下几种,可以单独使用,也可以复合使用:
淡入、淡出 -- fadeIn 、fadeOut
滑上、滑下 -- slideUp 、slideDown
复合显示切换 -- toggle
复合滑动切换 -- slideToggle
4.使用自定义动画方法animate
animate方法可以用来替换css方法,其结果就是可以达到动画渐变的样式改变。
标准的使用方法为:
.animate({property:'value1',property:'value2'}, speed, easing, function(){});
这里四个参数分别指定了css样式、变化速度、变化函数效果、变化后回调函数。
animate方法同时也可以简化为使用两个参数的,下面这个具体使用的例子说明了这一点:
var $link = $(this);$link.nextAll().animate({height:'toggle'},'slow');这里仅包括2个参数,第一个还是css样式,第二个是变化速度,而后两个则使用默认。
当然,css3也可以实现这种动画效果,性能要比javascript的高一些,但是,支持css3的浏览器参差不齐,兼容性是一个问题,尤其是令人怨声载道的IE。
5.动画的并发与队列处理
设计的时动画有的时候需要一起执行,或者按照先后次序执行。这就需要用到动画的并发与队列处理了。
首先说队列处理,由于jQuery的连缀特性,所以,要实现动画依照队列执行,只需要让动画连缀编写就可以了。
再来说动画的并发处理,在连缀写法的时候,如果在动画的持续时间处加上queue:false就可以使后一个动画提前到和前一个动画一起执行。
如下面的例子,这个例子里面包含了动画的并发与队列处理:
$('div.label').click(function(){var paraWidth = $('div.speech p').outerWidth();//获得speech内p的宽度var $switcher = $(this).parent();var switcherWidth = $switcher.outerWidth();$switcher.css({position:'relative'}).fadeTo('fast',0.5).animate({left:paraWidth-switcherWidth},{duration:'slow',queue:false}).fadeTo('slow',1.0).slideUp('slow').queue(function(){$switcher.css({'background-color':'#f00'});next();}).slideDown('slow');});
这个例子对switcher进行了许多种动画的组合操作,其中将animate方法的持续时间改为{duration:'slow',queue:false},这样加入queue:false就可以保证此动画效果提前到前一个动画处一起执行。
而后面的queue(function(){})这个方法则是为动画队列进行到此处提供了一个回调函数的方法。PS:另外一种回调方法是在每一个效果函数(如slideUp等等)这些,可以使用两个参数的重载方法,其第二个参数就是调用这个效果函数后的回调方法。例如:
var clickedItem = $(this);clickedItem.next().slideDown('slow',function(){clickedItem.slideUp('slow');});
6.高级动画操作
以下介绍了一些高级的动画操作,虽然不常用,但是使用得当的话,可以达到很好的效果。
第一,stop方法
stop方法用于中止当前正在进行的动画,如下:
//调用stop可以立刻终止正在进行的动画$(this).find('img').stop().animate({width:size,height:size,paddingTop:padding,paddingLeft:padding});这里在给img元素使用动画之前,如果img元素仍处于动画状态,则可以立即停止。
第二,动画效果的全局开关和全局速度设定
$.fx.off设定动画全局效果开关,$.fx.speeds进行全局速度设定。如下例:
//使用$.fx.off禁用全局效果。$('#fx-toggle').show().bind('click',function(){$.fx.off = !$.fx.off;});//使用$.fx.speeds设定全局动画速度$.fx.speeds._default = 250;这里的_default是speeds下的默认动画速度。初始是400。
第三,动画承诺
动画承诺类似于一种回调函数,当我们不清楚一个动画何时执行完毕的但是,却需要在动画执行完毕后立即调用。那就需要动画承诺的两个方法promise和done方法。
如下:
//添加动画承诺$movable = $('<div id="movable"></div>').appendTo('body');var bioBaseStyles = {display:'none',height:'5px',width:'25px'};var bioEffects = {duration: 800,easing: 'easeOutQuart',specialEasing:{opacity: 'linear'}};function showDetails(){$member = $(this);//通过hasClass方法判断是否存在active的css类if($member.hasClass('active')){return;}//然后如果不是存在active类的,让其隐藏$movable.fadeOut();$('div.member.active').removeClass('active').children('div').fadeOut();$member.addClass('active');$member.find('div').css({display: 'block',left: '-300px',top: 0}).each(function(index){$(this).animate({left: 0,top: 25*index});}).promise().done(showBio);}$('div.member').click(showDetails);function showBio(){var $member = $(this).parent(),$bio = $member.find('p.bio'),//通过extend方法将始终不变的基本样式和根据不同成员位置变化的top和left属性结合在一起。startStyles = $.extend(bioBaseStyles, $member.offset()),endStyles = {display: 'block',width: $bio.width(),top: $member.offset().top + 5,left: $member.width() + $member.offset().left - 5,opacity: 'slow'};$movable.html($bio.clone()).css(startStyles).animate(endStyles, bioEffects).animate({height: $bio.height()},{easing: 'easeOutQuart'});}promise和done的用法,只需要连缀到想要使用的动画元素之后就可以了。
- 《jQuery基础教程》-- 样式与动画
- jQuery基础教程——样式与动画
- jQuery基础教程笔记-样式和动画
- 【练习向】jQuery基础教程第四版课后练习——Book04_jQuery_样式与动画
- 学习笔记:《jQuery基础教程》第四版第四章课后练习——样式与动画
- 第四章 jQuery 样式与动画
- jQuery——样式与动画
- jQuery基础教程之DOM操作-样式操作
- JQuery--属性与样式
- 04_样式与动画
- jquery动画与效果
- jQuery-动画与特效
- jQuery动画与特效
- jQuery动画与特效
- jQuery事件与动画
- jQuery基础知识与动画
- jQuery动画与事件
- jquery动画与效果
- select()函数,作者写的很好,
- Java清理mysql中无用的数据库查询
- 解决ftp下载文件名乱码问题
- 关于scr自动添加到eclipse工程的包名中的问题
- POJ 图论【转自夏天的风blog】
- 《jQuery基础教程》-- 样式与动画
- epoll
- marvell pxa2128 uboot/linux kernel fast ethernet development documentary No.2
- ibatis 学习资料
- 如何在Android App中屏蔽(拦截)Home按键及其他按键
- spring3.2+ibatis2.3+cxf2.2+access整合开发
- spring的jar功能说明及个jar包之间的依赖关系
- git 提交 github 学习
- 2013 年关于 Linux 的 5 个预测