前端修炼——jQuery进阶!



内容概述:
    显示隐藏、淡入淡出、向上向下卷起
    操作元素的属性
    表单相关事件
    jQuery 正则
    常用的事件



显示隐藏、淡入淡出、向上向下卷起

hide() 隐藏

show() 显示

toggle() 切换显示和隐藏


fadeIn() 淡入

fadeOut 淡出

fadeToggle() 切换淡入和淡出


slideUp() 向上卷起

slideDown() 向下展开

slideToggle() 切换向上向下

stop() 可以只保留最后一次动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box {
            width: 200px;
            height: 200px;
            background: gold;
            /* display: none; */
        }
        
    </style>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $btn = $('#btn');
            var $div = $('.box');

            $btn.click(function(){

                // 制作显示和隐藏的动画
                // $div.hide();  // 隐藏
                // $div.show();  // 显示
                // $div.toggle();  // 切换显示也隐藏

                // 制作淡入和淡出动画
                // $div.fadeIn();  // 淡入
                // $div.fadeOut();  // 淡出
                // $div.fadeToggle();  // 切换淡入和淡出

                // 制作向下展开和向上卷起的动画
                // $div.slideUp();  // 向上卷起
                // $div.slideDown();  // 向下展开
                // $div.slideToggle();  // 切换向上和向下
                // 切换效果时每次点击都会被记录,jQuery会执行完每一次,stop可以在快速点击时只让最后一次生效
                $div.stop().slideToggle();

            })

        })      
    </script>
</head>
<body>
    <input type="button" value="动画" id="btn">
    <div class="box"></div>

</body>
</html>

操作元素的属性

prop() 取出或者设置某个属性的值

html() 取出或者设置 html 内容,等于 innerHTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $a = $('#link01')
            var $div = $('#div1')

            // 读取属性值
            var sId = $a.prop('id');
            // console.log(sId);

            // 写入或者叫做设置属性值
            $a.prop({'href':'http://www.jandan.net/ooxx','title':'这是去到小姐姐图片的链接','className':'big'});

            // 操作元素包裹的内容
            // 读取内容
            var sTr = $div.html();

            // 写入也叫做设置或者修改元素包裹的内容
            $div.html('改变的文字');
       
            $div.html('<ul><li>列表文字</li></ul><ul><li>列表文字</li></ul>');
        })
      
    </script>

</head>
<body>
    <a href="#" id="link01">一个链接</a>
    <div id="div1">这是一个div</div>

</body>
</html>




表单相关事件

blur() 文本框失去焦点

sumbit() 表单提交事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $form = $('#form01'),
            $txt = $('#input_txt'),
            $sub = $('#input_sub')

            $txt.blur(function(){
                // console.log('失去焦点');
                var sVal = $(this).val();
                console.log(sVal);
            })

            // 绑定表单提交事件
            $form.submit(function(){
                // console.log('提交了')

                // 阻止表单的默认提交行为
                return false;
                
            })
        })     
    </script>
</head>
<body>
    <form action="" id="form01">
        <input type="text" name="username" id="input_txt">
        <br><br>
        <input type="submit" id="input_sub" value="提交">

    </form>
</body>
</html>



正则

jQuery 正则表达式和 python 基本上一样,用法上有些区别

jQuery 默认是非贪婪

正则表达式的写法:

var re = new RegExp(‘规则’,‘可选参数’)

var re = /规则/参数

正则字符

匹配单个字符:. , \d, \D, \s, \S, \w, \W,[],\b(匹配单词边界),\B(匹配非单词边界)

匹配多个字符:*,+,?,{}

匹配开头结尾:^, $

修饰参数

g: global, 全文搜索,默认搜索到第一个结果停止

i: ingore case, 忽略大小写,默认大小写敏感

常用函数

test

用法:正则.test(字符串) 匹配成功,就返回真,否则就返回假

正则默认规则

默认非贪婪,匹配成功就结束,不会继续匹配,区分大小写

在正则前后加上匹配开头结尾可以让正则全匹配

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 创建正则表达式
        // 第一种方式:
        var reTest01 = new RegExp('a');
        
        // 第二种方式:
        var reTest02 = /a/;
        var reTest03 = /a/i;  // i 不分大小写
        // test 函数是懒惰的,需要在正则中设置开头和结尾
        var reTest04 = /^\d+$/;

        var sTr01 = 'abc';
        var sTr02 = 'Abc';
        var sTr03 = '12321312312';
        var sTr04 = '1233435sdfa';

        // 使用正则表达式
        // console.log(reTest02.test(sTr01));
        // console.log(reTest02.test(sTr02));
        // console.log(reTest03.test(sTr02));
        
        console.log(reTest04.test(sTr03));
        console.log(reTest04.test(sTr04));
  
    </script>

</head>
<body>
    
</body>
</html>



常用的事件

focus() 元素获得焦点

mouseover() 鼠标进入(进入子元素也触发)

mouseout() 鼠标离开(离开子元素也触发)

mouseenter() 鼠标进入(进入子元素不触发)

mouseleave() 鼠标离开(离开子元素不触发)

hover() 同时为 mouseenter 和 mouseleave 事件指定处理函数

ready() DOM 加载完成 ,jQuery 库的 $ 函数封装了 ready 事件

​ $(document).ready(function(){})

​ $(function(){})

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $Input = $('#input01'); 

            // 一般不在 focus 事件上绑定函数 
            /* $Input.focus(function(){
                console.log('获得焦点!')
            }) */

            // focus 一般用在 inpu 输入框默认获取焦点
            $Input.focus();

        })
        
    </script>
</head>
<body>
    <input type="text" id="input01">
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 200px;
            height: 200px;
            background: #555;
            margin: 100px auto;
        }
    
        .box2{
            width: 100px;
            height: 100px;
            background: green;
        }
    
    </style>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            var $div = $(".box");

            // mouseover 和 mouseout 移入子元素也会触发
            /* $div.mouseover(function(){
                $(this).animate({'margin-top':150})

            })

            $div.mouseout(function(){
                $(this).animate({'margin-top':100})

            }) */
            
            // mouseenter 和 mouseleave 移入子元素不会触发  阻止事件冒泡
            /* $div.mouseenter(function(){
                $(this).animate({'margin-top':150})

            })

            $div.mouseleave(function(){
                $(this).animate({'margin-top':100})

            }) */

            // 上面两句可以用 houver 事件合并成一句
            $div.hover(function(){
                $(this).animate({'margin-top':150})
            },function(){
                $(this).animate({'margin-top':100})
            })

        })     
    </script>
</head>
<body>
    <div class="box">
        <div class="box2"></div>
    </div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qyf__123/article/details/82817447