动画效果(一)

在以前很长一段时间里,网页上的各种特效还需要采用flash在进行。但最近几年里,我们已经很少看到这种情况了,绝大部分已经使用JavaScript动画效果来取代flash。这里
说的取代是网页特效部分,而不是动画。网页特效比如:渐变菜单、渐进显示、图片轮播等;而动画比如:故事情节广告、MV等等。

显示、隐藏

jQuery中显示方法为:.show(),隐藏方法为:.hide()。在无参数的时候,只是硬性的显示内容和隐藏内容。

html代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>动画效果</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <input type="button" class="show" value="显示" />
    <input type="button" class="hide" value="隐藏" />
    <input type="button" class="toggle" value="切换" />

    <div id="box">
        box
    </div>
    <!--
    <span id="box">
        box
    </span>
    -->
</body>
</html>

style.css:

#box {
    width: 100px;
    height: 100px;
    background: red;
}

jQuery代码如下:

$(".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("slow"); //600毫秒
});
$(".hide").click(function() {
    $("#box").hide("slow"); //600毫秒
});
$(".show").click(function() {
    $("#box").show("normal"); //默认400毫秒
});
$(".hide").click(function() {
    $("#box").hide("normal"); //默认400毫秒
});
$(".show").click(function() {
    $("#box").show("fast"); //200毫秒
});
$(".hide").click(function() {
    $("#box").hide("fast"); //200毫秒
});

注意: 不管是传递毫秒数还是传递预设字符串,如果不小心传递错误或者传递空字符串,那么它将采用默认值:400毫秒。

$(".show").click(function() {
    $("#box").show(""); //默认是400毫秒
});
$(".hide").click(function() {
    $("#box").hide("");
});

.show()和.hide()可以传递两个参数,一个是速度,第二个是回调函数。即:

$(".show").click(function() {
    $("#box").show("slow", function() {
        alert("显示完毕");
    });
});
$(".hide").click(function() {
    $("#box").hide("slow");
});

再看如下html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>动画效果</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

    <div class="test">你</div>
    <div class="test">好</div>
    <div class="test">吗</div>
    <div class="test">?</div>

    <input type="button" class="show" value="显示" />
    <input type="button" class="hide" value="隐藏" />
    <input type="button" class="toggle" value="切换" />

</body>
</html>

style.css:

.test {
    padding: 5px;
    margin-left: 5px;
    background: orange;
    float: left;
    display: none;
}

同步动画,四个区块同时显示出来:

$(".show").click(function() {
    $(".test").show("slow");
});

列队动画:

$(".show").click(function() {
    $(".test").eq(0).show("fast",function() {
        $(".test").eq(1).show("fast",function() {
            $(".test").eq(2).show("fast",function() {
                $(".test").eq(3).show("fast");
            });
        });
    });
});    

列队动画,递归自调用:

$(".show").click(function() {
    $(".test").first().show("fast", function testShow() {
        $(this).next().show("fast", testShow); //this代表$(".test").first()对象
    });
});
$(".hide").click(function() {
    $(".test").last().hide("fast", function testShow() {
        $(this).prev().hide("fast", testShow); //this代表$(".test").first()对象
    });
});

我们在使用.show()和.hide()的时候,如果需要一个按钮切换操作,需要进行一些条件判断,而jQuery提供给我们一个类似功能的独立方法:.toggle()。

html(部分)代码:

<input type="button" class="show" value="显示" />
<input type="button" class="hide" value="隐藏" />
<input type="button" class="toggle" value="切换" />

<div id="box">
    box
</div>

style.css:

#box {
    width: 100px;
    height: 100px;
    background: red;
}

同时实现显示与隐藏的功能:

$(".toggle").click(function() {
    $("#box").toggle("slow"); //显示与隐藏
});

滑动、卷动

jQuery提供了一组改变元素高度的方法:.slideUp()、.slideDown()和.slideToggle()。顾名思义,向上收缩(卷动)和向下展开(滑动)。

html代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>动画效果</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

    <input type="button" class="up" value="上" />
    <input type="button" class="down" value="下" />
    <input type="button" class="toggle" value="切换" />

    <div id="box">
        box
    </div>
</body>
</html>

style.css:

#box {
    width: 100px;
    height: 100px;
    background: red;
}

jQuery代码:

$(".up").click(function() {
    $("#box").slideUp("slow");
});
$(".down").click(function() {
    $("#box").slideDown("slow");
});
$(".toggle").click(function() {
    $("#box").slideToggle("slow");
});

注意:滑动、卷动效果和显示、隐藏效果一样,具有相同的参数。

淡入、淡出

jQuery提供了一组专门用于透明度变化的方法:.fadeIn()和.fadeOut(),分别表示淡入、淡出,当然还有一个自动切换的方法:.fadeToggle()。

html代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>动画效果</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

    <input type="button" class="in" value="淡入" />
    <input type="button" class="out" value="淡出" />
    <input type="button" class="toggle" value="切换" />
    <input type="button" class="to" value="透明度到" />

    <div id="box">
        box
    </div>
</body>
</html>

style.css代码同上。

jQuery代码:

$(".out").click(function() {
    $("#box").fadeOut("slow");
});
$(".in").click(function() {
    $("#box").fadeIn("slow");
});
$(".toggle").click(function() {
    $("#box").fadeToggle("slow");
});

上面三个透明度方法只能是从0到100,或者从100到0,如果我们想设置指定值就没有办法了,而jQuery为了解决这个问题提供了.fadeTo()方法。

$(".to").click(function() {
    $("#box").fadeTo("slow",0.33); //0-1之间,0.33表示值为33
});

注意:淡入、淡出效果和显示、隐藏效果一样,具有相同的参数。对于.fadeTo()方法,如果本身透明度大于指定值,会淡出,否则相反。

时间: 2024-11-11 18:52:50

动画效果(一)的相关文章

iOS点击查看大图的动画效果

对于图片来说,除了表情包,几乎都会被点击查看大图.今天就讲解一个查看和收起大图的动画效果,先直接看效果图: 如图所示,最开始是一个小图,点击小图可以查看大图.大图会从小图的位置和大小"弹"出来,同时背景变成半透明的阴影.点击大图或者阴影后,收起大图,同样地弹回到小图去,同时去掉阴影背景,就像是一张图片在伸大缩小一样. 现在看看这是怎么实现的.在思考一个动画的实现方法时,把动画的动作进行分解然后再一个个去思考怎么实现是一个好的习惯,我们稍微分解一下,这个动画在显示大图和收起大图的时候做了

iOS 之动画效果

/** type *  各种动画效果  其中除了'fade', `moveIn', `push' , `reveal' ,其他属于私有的API. *  ↑↑↑上面四个可以分别使用'kCATransitionFade', 'kCATransitionMoveIn', 'kCATransitionPush', 'kCATransitionReveal'来调用. *  @"cube"                     立方体翻滚效果 *  @"moveIn"    

Core Animation 动画效果介绍

在开始之前呢,先了解一下UIView和CALayer大体的区别(重点列举了以下四点): UIView继承自 UIResponder,因此UIView 可以处理响应事件,而CALayer继承自NSObject,所以它只是负责内容的创建,绘制. UIView负责对内容的管理,而CALayer则是对内容的绘制 UIView中有关位置的属性只有frame.bounds.center,而CALayer除了具备这些属性之外还有anchorPoint.position. 通过修改CALayer可以实现UIVi

带感”的边框交互动画效果

  效果的原理其实就是"四条边"发生宽度和高度的变化,上下两边是宽度变化,左右两边是高度的变化: 它们发生变化的方向也可以可控的,根据坐标设置即可控制. 下面我们直接上代码: 首先准备基础代码,那四条边并不是真正的border,而是通过标签加以宽高写出来,然后定位到四个方向: <!-- html --> <div class="box"> <div class="topL"></div> <d

iOS开发 QQ粘性动画效果

QQ(iOS)客户端的粘性动画效果 时间 2016-02-17 16:50:00  博客园精华区 原文  http://www.cnblogs.com/ziyi--caolu/p/5195615.html 主题 iOS开发 qq的app中要是有新的联系人发消息过来,相应联系人的cell右边会有一个红色的圆圈表示消息条数.如果去触碰那个圆圈,可以发现它竟然会跟着手指的移动而移动. 在一定范围内,手指离开屏幕,会发现红色圆圈会自动弹性的回到原来的位置.而如果超出一定距离,这个圆圈会做一个销毁的动画,

javascript动画效果之缓冲动画(修改版)

在编写多块同时触发运动的时候,发现一个BUG, timer = setInterval(show, 30);本来show是一个自定义函数,当设为timer = setInterval(show(one,two), 30);时,发现show里面的参数one和two无法被导入,所以需要做以下代码改进和优化 原版的html和css代码在这里javascript动画效果之缓冲动画 js代码如下 1 <script> 2 function $(id) { 3 return typeof id === &

自己动手丰衣足食,为Zepto添加Slide动画效果

一.缘由 公司的移动端项目,采用zepto为主要框架,但是zepto毕竟是精简版的jquery,体积小了,功能自然没有这么强大,特别是动画和选择器这两块,需要我们自己去拓展. 在项目开发过程中,很多页面过渡需要用到动画,简单的show/hide过渡太生硬,对用户不友好,并且移动端大多都是采用slide效果,此文主要是为zepto拓展slide动画. 二.发现 从zepto的在线文档上可以发现一个发布在github上的动画模块,但是缺少slide效果,度娘上找了找,相关的极少,只发现了一个slid

jQuery动画效果(借鉴他人的)

(1)jquery中常见的几种动画效果 (2)动画队列执行的顺序 对于一组元素上的动画效果,有如下两种情况: a) 当在一个animate()方法中应用多个属性时,动画是同时发生的. b) 当以链式的写法应用动画方法时,动画是按照顺序发生的. 对 于多组元素上的动画效果,有如下情况: a) 默认情况下,动画都是同时发生的. b) 当以回调的形式应用动画方式时,动画是按照回调顺序发生的. 另外,在动画方法中,要注意其他非动画的方法会插队,例如css()方法,要使这些非动画的 方法也按照顺序来执行,

CSS动画效果之animation

Y(^o^)Y css动画大乱弹之animation. 概述 什么是animation呢?在回答这个问题之前,先要说明什么叫做@keyframe(关键帧).@keyframe算是一个动画模板.在其中,可以使用百分比,如从0%到100%的任意值,分别在每个百分比中,加上不同的属性,从而让元素达到一种在不断变化的动画效果.这和我们制作flash动画一样,我们只需设计几个关键帧,系统就能生成动画啦! 一个@keyframe例子: 1 /*定义关键帧动画*/ 2 @keyframes myframe {

仿window阿里旺旺登陆界面,打印机吐纸动画效果-b

偶然的机会发现window的阿里旺旺的登陆效果蛮有意思的,于是就模仿着做了一下打印机吐纸的动画效果看起来很神奇的东西,实现起来却不难,下面我给大家看下主要的源码. - (void)createUI{    UIImageView *backimageView=[[UIImageView alloc]init];        backimageView.image =[UIImage imageNamed:@"1.png"];        backimageView.frame =