zoukankan      html  css  js  c++  java
  • 动画效果(一)

       在以前很长一段时间里,网页上的各种特效还需要采用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()方法,如果本身透明度大于指定值,会淡出,否则相反。

      

  • 相关阅读:
    mysql总结
    JVM入门_笔记_狂神说
    spring-与事务管理相关的工具类
    spring-获取连接的工具类
    浏览器调试之 实时更新 browser-sync
    Git: 版本控件
    Visual Studio Code 自定义快捷键,自动生成.vue文件
    Markdown基本语法
    Node.js 平台-服务器 之 Express
    chrome插件之 vue devtools
  • 原文地址:https://www.cnblogs.com/yerenyuan/p/5430306.html
Copyright © 2011-2022 走看看