genesis

在以前很长一段时间里,网页上的各种特效还需要采用 flash 在进行。但最近几年里,
我们已经很少看到这种情况了,绝大部分已经使用 JavaScript 动画效果来取代 flash。这里
说的取代是网页特效部分,而不是动画。网页特效比如:渐变菜单、渐进显示、图片轮播等;
而动画比如:故事情节广告、MV 等等。
一.显示、隐藏
jQuery 中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显
示内容和隐藏内容。
$(\'.show\').click(function () { //显示
$(\'#box\').show();
});
$(\'.hide\').click(function () { //隐藏
$(\'#box\').hide();
});
注意:.hide()方法其实就是在行内设置 CSS 代码:display:none; 而.show()方法要根据原
来元素是区块还是内联来决定,如果是区块,则设置 CSS 代码:display:block; 如果是内联,
则设置 CSS 代码:display:inline;。
在.show()和.hide()方法可以传递一个参数,这个参数以毫秒(1000 毫秒等于 1 秒钟)来控
制速度。并且里面富含了匀速变大变小,以及透明度变换。
$(\'.show\').click(function () {
$(\'#box\').show(1000); //显示用了 1 秒
});
$(\'.hide\').click(function () {
$(\'#box\').hide(1000); //隐藏用了 1 秒
});
除了直接使用毫秒来控制速度外,jQuery 还提供了三种预设速度参数字符串:slow、
normal 和 fast,分别对应 600 毫秒、400 毫秒和 200 毫秒。
$(\'.show\').click(function () {
$(\'#box\').show(\'fast\'); //200 毫秒
});
$(\'.hide\').click(function () {
$(\'#box\').hide(\'slow\'); //600 毫秒
});
注意: 不管是传递毫秒数还是传递预设字符串, 如果不小心传递错误或者传递空字符串。
那么它将采用默认值:400 毫秒。
$(\'.show\').click(function () {
$(\'#box\').show(\'\'); //默认 400 毫秒
});
//使用.show()和.hide()的回调函数,可以实现列队动画效果。
$(\'.show\').click(function () {
$(\'#box\').show(\'slow\', function () {
alert(\'动画持续完毕后,执行我!\');
});
});
//列队动画,使用函数名调用自身
$(\'.show\').click(function () {
$(\'div\').first().show(\'fast\', function showSpan() {
$(this).next().show(\'fast\', showSpan);
});
});
//列队动画,使用 arguments.callee 匿名函数自调用
$(\'.hide\').click(function () {
$(\'div\').last().hide(\'fast\', function() {
$(this).prev().hide(\'fast\', arguments.callee);
});
});
我们在使用.show()和.hide()的时候,如果需要一个按钮切换操作,需要进行一些条件判
断。而 jQuery 提供给我们一个类似功能的独立方法:.toggle()。
$(\'.toggle\').click(function () {
$(this).toggle(\'slow\');
});
二.滑动、卷动
jQuery 提供了一组改变元素高度的方法:.slideUp()、.slideDown()和.slideToggle()。顾名
思义,向上收缩(卷动)和向下展开(滑动)。
$(\'.down\').click(function () {
$(\'#box\').slideDown();
});
$(\'.up\').click(function () {
$(\'#box\').slideUp();
});
$(\'.toggle\').click(function () {
$(\'#box\').slideToggle();
});
注意:滑动、卷动效果和显示、隐藏效果一样,具有相同的参数。
三.淡入、淡出
jQuery 提供了一组专门用于透明度变化的方法:.fadeIn()和.fadeOut(),分别表示淡入、
淡出,当然还有一个自动切换的方法:.fadeToggle()。
$(\'.in\').click(function () {
$(\'#box\').fadeIn(\'slow\');
});
$(\'.out\').click(function () {
$(\'#box\').fadeOut(\'slow\');
});
$(\'.toggle\').click(function () {
$(\'#box\').fadeToggle();
});
上面三个透明度方法只能是从 0 到 100,或者从 100 到 0,如果我们想设置指定值就没
有办法了。而 jQuery 为了解决这个问题提供了.fadeTo()方法。
$(\'.toggle\').click(function () {
$(\'#box\').fadeTo(\'slow\', 0.33); //0.33 表示值为 33
});
注意:淡入、淡出效果和显示、隐藏效果一样,具有相同的参数。对于.fadeTo()方法,
如果本身透明度大于指定值,会淡出,否则相反。
四.自定义动画
jQuery 提供了几种简单常用的固定动画方面我们使用。但有些时候,这些简单动画无法
满足我们更加复杂的需求。这个时候,jQuery 提供了一个.animate()方法来创建我们的自定
四.自定义动画
jQuery 提供了几种简单常用的固定动画方面我们使用。但有些时候,这些简单动画无法
满足我们更加复杂的需求。这个时候,jQuery 提供了一个.animate()方法来创建我们的自定
义动画,满足更多复杂多变的要求。
$(\'.animate\').click(function () {
$(\'#box\').animate({
\'width\' : \'300px\',
\'height\' : \'200px\',
\'fontSize\' : \'50px\',
\'opacity\' : 0.5
});
});
注意:一个 CSS 变化就是一个动画效果,上面的例子中,已经有四个 CSS 变化,已经
实现了多重动画同步运动的效果。
必传的参数只有一个,就是一个键值对 CSS 变化样式的对象。还有两个可选参数分别
为速度和回调函数。
$(\'.animate\').click(function () {
$(\'#box\').animate({
\'width\' : \'300px\',
\'height\' : \'200px\'
}, 1000, function () {
alert(\'动画执行完毕执行我!\');
});
});
到目前位置, 我们都是创建的固定位置不动的动画。 如果想要实现运动状态的位移动画,
那就必须使用自定义动画,并且结合 CSS 的绝对定位功能。
$(\'.animate\').click(function () {
$(\'#box\').animate({
\'top\' : \'300px\', //先必须设置 CSS 绝对定位
\'left\' : \'200px\'
});
});
自定义动画中,每次开始运动都必须是初始位置或初始状态,而有时我们想通过当前位
置或状态下再进行动画。jQuery 提供了自定义动画的累加、累减功能。
$(\'.animate\').click(function () {
$(\'#box\').animate({
\'left\' : \'+=100px\',
});
});
自定义实现列队动画的方式,有两种:1.在回调函数中再执行一个动画;2.通过连缀或
顺序来实现列队动画。
//通过依次顺序实现列队动画
$(\'.animate\').click(function () {
$(\'#box\').animate({\'left\' : \'100px\'});
$(\'#box\').animate({\'top\' : \'100px\'});
$(\'#box\').animate({\'width\' : \'300px\'});
});
注意:如果不是同一个元素,就会实现同步动画
//通过连缀实现列队动画
$(\'.animate\').click(function () {
$(\'#box\').animate({
\'left\' : \'100px\'
}).animate({
\'top\' : \'100px\'
}).animate({
\'width\' : \'300px\'
});
});
//通过回调函数实现列队动画
$(\'.animate\').click(function () {
$(\'#box\').animate({
\'left\' : \'100px\'
}, function () {
$(\'#box\').animate({
\'top\' : \'100px\'
}, function () {
$(\'#box\').animate({
\'width\' : \'300px\'
});
});
});
});

show(speed,easing,callback) 显示,在show(1000)加上参数时,则以毫秒显示,同时支持slow、normal和fast,分别是600,400,200毫秒 <input type="button" class="show" value="显示" />
<input type="button" class="hide" value="隐藏" />
$(\'.show\').click(function () {
    $(\'div\').show();
});
隐藏,在show(1000)加上参数时,则以毫秒隐藏,同时支持slow、normal和fast,分别是600,400,200毫秒 $(\'.hide\').click(function () {
    $(\'div\').hide();
});
toggle(speed,easing,callback) 切换显示隐藏功能 <input type="button" class="toggle" value="显示隐藏" /> $(\'.toggle\').click(function () {
$(\'div\').toggle(1000);
});
slideDown(speed,easing,callback) 向下显示 <input type="button" class="down" value="向下" />
<input type="button" class="up" value="向上" />
<input type="button" class="toggle" value="向下向上" />
$(\'.down\').click(function () {  $(\'div\').slideDown(1000);
});
$(\'.up\').click(function () {
  $(\'div\').slideUp(1000);
});
$(\'.toggle\').click(function () {
$(\'div\').slideToggle(1000);
})
slideUp(speed,easing,callback) 向下显示
slideToggle(speed,easing,callback) 切换向上向下
fadeIn(speed,easing,callback) 淡入 <input type="button" class="fadeIn" value="淡入" /> $(\'.fadeIn\').click(function () {
    $(\'div\').fadeIn(1000);
});
fadeOut(speed,easing,callback) 淡出 <input type="button" class="fadeOut" value="淡出" /> $(\'.fadeOut\').click(function () {
    $(\'div\').fadeOut(1000);
});
fadeToggle(speed,easing,callback) 淡入淡出 <input type="button" class="fadeToggle" value="淡入淡出" /> $(\'.fadeToggle\').click(function () {
    $(\'div\').fadeToggle(1000);
})
animate(prop,speed,easing,callback) 自定义动画(展开) <input type="button" class="animate" value="放大" />  <div style="height:100px;width:100px;div内容</div> $(\'.animate\').click(function () {
    $(\'div\').animate({
        width: \'300px\',
        height: \'200px\',
        fontSize: \'50px\',
        opacity:0.5  //透明度
    });
});
自定义动画(收回) <input type="button" class="animateIn" value="收回" /> var height = $(\'div\').height();//获取div原始高度,100
var width = $(\'div\').width();//获取div原始度度,100
var fontSize = $(\'div\').css("font-size");//div字体原体大小为16px
$(\'.animateIn\').click(function () {
    var newHeight = $(\'div\').height();
    var newWidth = $(\'div\').width();
    $(\'div\').animate({
        width: newHeight - (newHeight - height) + \'px\',
        height: newWidth - (newWidth - width) + \'px\',
        fontSize: \'16px\',
        opacity: 1  //透明度
    });
});
加上速度和回调函数 $(\'.animate\').click(function () {
$(\'#box\').animate({
\'width\' : \'300px\',
\'height\' : \'200px\'
}, 1000, function () {
alert(\'动画执行完毕执行我!\');
});
});
其它方向移动 <input type="button" class="button" value="按钮" />
<div id="box">
 box
</div>
css代码:<style type="text/css">
    #box {
     width:100px;
     height:100px;
     background:red;
     position:absolute;
    }
</style>                   $(\'.button\').click(function () {
    $(\'#box\').animate({
        left: \'300px\',//+=100px不断往后移
        top: \'200px\'
    }, \'slow\');
});

分类:

技术点:

相关文章:

  • 2021-08-13
  • 2021-10-08
  • 2021-08-13
  • 2021-09-27
  • 2021-10-08
猜你喜欢
  • 2021-08-13
  • 2021-09-28
  • 2021-09-28
  • 2021-09-28
  • 2021-10-08
  • 2021-10-08
相关资源
相似解决方案