jQuery学习笔记——链式编程和jQuery动画

1.基本原理

链式编程就是多行代码合并为一行代码,前提就是该代码返回的是对象,在对象内使用return this,就可以在方法中链式调用。
如:对象.html(‘代码’).css(‘属性’,‘属性值’).text(‘文本内容’).val(‘value属性值’);
对象.事件1.事件2……

 //多行代码合并成了同一行代码
 $('#div').html('

Hello World

'
).css('backgroundColor','red');

2.断链现象

断链现象的出现:对象调用方法,返回的不是当前对象,此时又调用方法,就会发生断链。
解决断链的方法:在需要又一次调用的方法处,调用end()方法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>链式编程</title>
    <script src="jquery-1.12.2.js"></script>
 <script>
    $(function() {
        $('#uuu>li').click(function() {
           $(this).css('backgroundColor','yellow');
 // prevAll()返回的是字符串类型 会发生断链现象 使用end()可以解决断链
           $(this).prevAll().css('backgroundColor','green').end().nextAll().css('backgroundColor','blue');
});
       $('#uuu>li').each(function(index,element) {
                // 为li不同的元素 设置不同的样式
          $(element).css('opacity',(index+1)/10);
        });
    });
 </script>
    </head>
    <body>
<ul id="uuu">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
</ul>
    </body>
</html>

3.jQuery动画方法

隐藏:hide(),显示:show()
滑入:slideUp()
滑出:slideDown()
滑入滑出切换:slideToggle()
方法中可以有参数speed:数字类型,单位是毫秒,字符串类型:slow, normal, fast。
淡入:fadeIn()
淡出:fadeOut()
淡入淡出切换:fadeToggle()
透明度的改变:fadeTo(时间,到达的透明度) 类型样式中的透明度 css(‘opacity’,到达的透明度)。
animate():参数:1.键值对–对象 2.时间 单位毫秒 3.匿名函数 回调函数。
stop():停止动画。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery动画</title>
    <style>
        #dv {
            width: 200px;
            height: 200px;
            /* background-color: skyblue; */
        }
        #dv img {
            width: 50px;
            height: 50px;
            float: left;
        }
        #slide {
            width: 200px;
            height: 100px;
            background-color: pink;
        }
        #fade {
            width: 200px;
            height: 100px;
            background-color: skyblue;
        }
        #animate {
            width: 100px;
            height: 100px;
            background-color: red;
            position: absolute;
        }
    </style>
    <script src="jquery-1.12.2.js"></script>
     <script>
        $(function() {
            $('#btnHide').click(function() {
                // $('#dv').hide(1000);
                // 点击按钮隐藏图片 从最后一个元素开始隐藏 方法last():最后一个元素 隐藏一个元素之后,前一个元素继续隐藏
                $('#dv>img').last().hide(800,function() {
   // 当前元素的前一个元素继续隐藏 使用递归函数 arguments.callee
                    $(this).prev().hide(800,arguments.callee);
                });
            });
            $('#btnShow').click(function() {
    // $('#dv').show('slow'); 从第一个元素开始显示 first()
                $('#dv>img').first().show(800,function() {
                    $(this).next().show(800,arguments.callee);
                });
            });
            // 滑入
            $('#btnSlideUp').click(function() {
                $('#slide').slideUp(1000);
            });
            // 滑出
            $('#btnSlideDown').click(function() {
                $('#slide').slideDown(1000);
            });
            // 滑入 滑出切换
            $('#btnSlideToggle').click(function() {
                $('#slide').slideToggle(500);
            });
            // 淡入
            $('#btnFadeIn').click(function() {
                $('#fade').fadeIn(500);
            });
            // 淡出
            $('#btnFadeOut').click(function() {
                $('#fade').fadeOut(500);
            });
            // 切换
            $('#btnFadeToggle').click(function() {
                $('#fade').fadeToggle(600);
            });
            // 透明度改变 一个参数是改变的时间 另一个参数是到达的透明度
            $('#btnFadeTo').click(function() {
                $('#fade').fadeTo(600,0.3);
            });
            // 动画animate方法测试
            $('#btnAnimate').click(function() {
                $('#animate').animate({
                // 需要改变元素的样式,使用键值对的形式
                    'width':'400px',
                    'height':'400px',
                    'left':'300px',
                    'top':'400px'
                    },600,function() {
                    // 回调函数
                        $('#animate').animate({
                            'width':'50px',
                            'height':'50px',
                            'left':'600px',
                            'top':'600px',
                            // 改变透明度
                            'opacity':'0.3'
                        },1000);
                    });
            });
        });
    </script>
    </head>
<body>
    <input type="button" id="btnHide" value="隐藏">
    <input type="button" id="btnShow" value="显示">
    <div id="dv">
        <img src="images/animate1.jpg" alt="">
        <img src="images/animate2.jpg" alt="">
        <img src="images/animate3.jpg" alt="">
        <img src="images/animate4.jpg" alt="">
    </div>
    <input type="button" id="btnSlideUp" value="滑入">
    <input type="button" id="btnSlideDown" value="滑出">
    <input type="button" id="btnSlideToggle" value="切换">
    <div id="slide">
    </div>
    <input type="button" id="btnFadeIn" value="淡入">
    <input type="button" id="btnFadeOut" value="淡出">
    <input type="button" id="btnFadeToggle" value="淡入淡出切换">
    <input type="button" id="btnFadeTo" value="透明度">
    <div id="fade">
    </div>
    <input type="button" id="btnAnimate" value="动画">
    <div id="animate"></div>
</body>
</html>

你可能感兴趣的:(Web前端学习)