首页 前端知识 jQuery 学习归纳1 --- jQuery 常用API

jQuery 学习归纳1 --- jQuery 常用API

2024-05-08 10:05:43 前端知识 前端哥 290 941 我要收藏

        jQuery其实就是一个Js文件,里面集合了很多封装好的函数。方便了我们进行开发使用。

        使用jQuery,就是为了更快速操作DOM。

一、jQuery前期准备

1.1 jQuery 使用的前期准备

        在使用之前需要需要在项目中导入jQuery文件。

        1、进入jQuery官网 www.jQuery.com ,下载我们版本,一般使用压缩版就好

        2、点击下载压缩版,就会跳转到文件内部

        3、复制所有,在自己的项目中,创建一个js文件,jQuery.min.js

1.2 jQuery 的使用

        1、在项目的html文件中引入jQuery文件(一定要在自己书写的JS之前)

         

        2、在后续的JS书写中就可以使用jQuery中封装的函数了。

1.3 jQuery 的入口函数

        等着页面DOM加载完毕再去执行js 代码。

    <script>
        // 等着页面DOM加载完毕再去执行js 代码
        $(function () {
           代码;
        })
    </script>

二、jQuery使用

2.1 jQuery的顶级对象

        $ 是jQuery的别称(另外的名字).

        所以下面的两个代码是等效的

        $(function () {
            $('div').hide();
            alert(11);
        });
        jQuery(function () {

            jQuery('div').hide();
            alert(11);
        });

        $同时也是jQuery的 顶级对象。相当于js中的window。

2.2 DOM 对象和 jQuery 对象区别

        DOM 对象:  用原生js获取过来的对象就是DOM对象

var myDiv = document.querySelector('div'); // myDiv 是DOM对象

        jQuery对象: 用jquery方式获取过来的对象是jQuery对象。 本质:通过$把DOM元素进行了包装

$('div'); // $('div')是一个jQuery 对象

         注意:

        jQuery 对象只能使用 jQuery 方法,DOM 对象则使用原生的 JavaScirpt 属性和方法。

        如:1、jQuery 对象不能对行内样式直接加以修改。2、DOM 对象不能使用jQuery封装的函数

2.3 DOM 对象和 jQuery 对象相互转化

        为了使得一个对象能既使用DOM方法又使用jQuery方法,我们需要让对象在DOM和jQuery中切换

        1、DOM对象转换为 jQuery对象

        var myvideo = document.querySelector('video');
        $(myvideo); //转换为了jquery对象

        2、jQuery对象转换为DOM对象

         $('video');//获取jquery对象
         //转化方式1:
         $('video')[0].play();
         //转换方式2:
         $('video')。get(0).play();

        因为获取的jquery对象以伪数组的方式存在。 

2.4 jQuery的选择器

        首先,加强一个概念,符合选择器条件得到的jquery对象,以数组的形式存储。

2.4.1 基本选择器

        按照标签名称获取:

        $('div')

        按照类名获取:

        $('.myclass1')

        按照id获取;

        $('#mtid1')

         和DOM的对象获取一致。

2.4.2 子代选择器

        所谓子代就是自己的亲儿子,只选出自己的亲儿子。

        这里的前四个li 时ol的亲儿子,后四个li 时ul的前儿子

    <ol>
        <li>我是ol 的</li>
        <li>我是ol 的</li>
        <li>我是ol 的</li>
        <li>我是ol 的</li>
    </ol>
    <ul>
        <li>我是ul 的</li>
        <li>我是ul 的</li>
        <li>我是ul 的</li>
        <li>我是ul 的</li>
    </ul>
        $('ul>li')

2.4.3 后代选择器

        这里选出后续中所有满足条件的子代,比如使用

        $('ul li')

        挑选 

        会得到所有的li对象。 

2.5 jQuery的隐式迭代

        jquery使用很简便的另一个大点在于,jquery内部直接实现了对伪数组的遍历。

        比如当我们对所有div对象设置背景颜色时,只需要获取所有的div,然后设置一次就好。

        $("div").css("background", "red");

        jquery内部自动帮我们实现了循环,不需要我们自己去编写循环代码。

2.6 jQuery的筛选器

2.6.1jQuery的筛选器的使用

        可以使用如下方式,对jquery对象进行筛选

    <script>
        $(function() {
            $("ul li:first").css("color", "red");
            $("ul li:eq(2)").css("color", "blue");
            $("ol li:odd").css("color", "skyblue");
            $("ol li:even").css("color", "pink");
        })
    </script>

2.6.2筛选器使用方法

        1、.parent()                         返回父级

        2、.children(选择器)                亲儿子,类似子代选择器  ul>li

        3、.find(选择器)                       所有子类

        4、.siblings(选择器)                 所有同辈兄弟,除自己!!

        5、nextAll() , prevtAll()            除自己以外的,之前or之后的同辈元素

        6、.eq(index)                          伪类中某个序号的对象

        7、.hasClass('类名')                是否含有特定类,类名不用加 . !!!

2.6.3jQuery 里面的排他思想

        核心思想:借助同辈兄弟筛选器(因为不包括自己)。所以设置自己的样式以后,清除同辈兄弟的样式。

    <script>
        $(function() {
            // 1. 隐式迭代 给所有的按钮都绑定了点击事件
            $("button").click(function() {
                // 2. 当前的元素变化背景颜色
                $(this).css("background", "blue");
                // 3. 其余的兄弟去掉背景颜色 隐式迭代
                $(this).siblings("button").css("background", "");
            });
        })
    </script>

2.7 链式编程

        这样的编程方法,大大降低了代码的书写量。

        一般情况下,我们这样说西安

    <script>
        $(function() {
            // 1. 隐式迭代 给所有的按钮都绑定了点击事件
            $("button").click(function() {
                // 2. 当前的元素变化背景颜色
                $(this).css("background", "blue");
                // 3. 其余的兄弟去掉背景颜色 隐式迭代
                $(this).siblings("button").css("background", "");
            });
        })
    </script>

        如果换成链式编程:

    <script>
        $(function() {
            // 1. 隐式迭代 给所有的按钮都绑定了点击事件
            $("button").click(function() {
                $(this).css("color", "blue").siblings().css("color", "");
        })
    </script>

        只需要一句话,就可以实现2个功能。 

三、 jQuery 常用API

3.1 jQuery 修改样式  --- CSS方法

        jquery对样式的修改,不能像DOM对象一样采用行内样式直接修改,而是要通过jquery封装的函数 .css(),进行修改。

            $("div").css({
                width: 400,
                height: 400,
                backgroundColor: "red"
                    // 如果是复合属性则必须采取驼峰命名法,如果值不是数字,则需要加引号
            })

        或者可以是:

        $("div").css("width", "300px");

        注意:1、属性名一定要加引号;2、如果是复合属性则必须采取驼峰命名法,如果值不是数字,则需要加引号; 

        如果只有属性则返回,属性值。

        console.log($("div").css("width"));

3.2 jQuery 修改样式  --- 类方法

        如果多次重复出现某种样式,我们可以帮这个样式写成一个类。

        .current {
            background-color: red;
            transform: rotate(360deg);
        }

        作用等同于以前的 classList,可以操作类样式, 注意操作类里面的参数不要加点。

        1、添加类

        $(“div”).addClass(''current'');

        2、移除类 

        $(“div”).removeClass(''current'');

        3、切换类

        $(“div”).toggleClass(''current'');

        切换类顾名思义,事件发生以后,重复执行添加,移除的操作。 

        注意:所有的类都是添加!!!而不是覆盖!!!一个对象可以同时添加几个类!!!这个addClass相当于追加类名 不影响以前的类名!!!

        原生 JS 中 className 会覆盖元素原先里面的类名。jQuery 里面类操作只是对指定类进行操作,不影响原先的类名。

3.3  jQuery 效果 --- 显示与隐藏

        1、显示语法规范

show([speed,[easing],[fn]])

        (1)参数都可以省略, 无动画直接显示。

        (2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

        (3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

        (4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

         2、隐藏语法规范

hide([speed,[easing],[fn]])

        参数同上。

        3、 切换语法规范

toggle([speed,[easing],[fn]])

        参数同上。

         综合案例:

<!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>
        div {
            width: 150px;
            height: 300px;
            background-color: aquamarine;
        }
    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <button>显示</button>
    <button>隐藏</button>
    <button>切换</button>
    <div></div>
    <script>
        $(function () {
            $("button").eq(0).click(function () {
                $("div").show(1000, function () {
                    alert(1);
                });
            })
            $("button").eq(1).click(function () {
                $("div").hide(1000, function () {
                    alert(1);
                });
            })
            $("button").eq(2).click(function () {
                $("div").toggle(1000);
            })
            // 一般情况下,我们都不加参数直接显示隐藏就可以了
        });
    </script>
</body>

</html>

3.4 jQuery 效果 --- 滑动

        1. 下滑效果语法规范

slideDown([speed,[easing],[fn]])

        2. 上滑效果语法规范

slideUp([speed,[easing],[fn]])

        3、滑动切换效果语法规范

slideToggle([speed,[easing],[fn]])

         综合案例:

<!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>
        div {
            width: 150px;
            height: 300px;
            background-color: aquamarine;
            display: none;
        }
    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <button>下拉滑动</button>
    <button>上拉滑动</button>
    <button>切换滑动</button>
    <div></div>
    <script>
        $(function () {
            $("button").eq(0).click(function () {
                // 下滑动 slideDown()
                $("div").slideDown();
            })
            $("button").eq(1).click(function () {
                // 上滑动 slideUp()
                $("div").slideUp(500);


            })
            $("button").eq(2).click(function () {
                // 滑动切换 slideToggle()

                $("div").slideToggle(500);

            });

        });
    </script>
</body>

</html>

3.5  jQuery 效果细节---stop()

        所有的jQuery动画效果是一个队列,如果多次触发一个动画效果,就会在我们不触发以后,还在执行,知道队列中的效果全部执行完,这样是不利于交互的。

        在每一次触发事件后,先执行一次stop(),取消该对象之前的队列,只专注当下的效果。

            $(".nav>li").hover(function() {
                // stop 方法必须写到动画的前面
                $(this).children("ul").stop().slideToggle();
            });

        stop()一定写在本次动作之前,用于停止以前的队列。 

3.6  jQuery 效果 --- 淡入淡出

        1. 淡入效果语法规范

        fadeIn([speed,[easing],[fn]])

        (1)参数都可以省略。

        (2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

        (3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

        (4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。

        2. 淡出效果语法规范

        fadeOut([speed,[easing],[fn]])

        参数同上。

        3、淡入淡出切换效果语法规范

        fadeToggle([speed,[easing],[fn]])

        4、 渐进方式调整到指定的不透明度

        fadeTo([[speed],opacity,[easing],[fn]])

        (1)opacity 透明度必须写,取值 0~1 之间。

        (2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。必须写

        (3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

        (4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。 

        综合案例:

 <script>
        $(function() {
            $("button").eq(0).click(function() {
                // 淡入 fadeIn()
                $("div").fadeIn(1000);
            })
            $("button").eq(1).click(function() {
                // 淡出 fadeOut()
                $("div").fadeOut(1000);

            })
            $("button").eq(2).click(function() {
                // 淡入淡出切换 fadeToggle()
                $("div").fadeToggle(1000);

            });
            $("button").eq(3).click(function() {
                //  修改透明度 fadeTo() 这个速度和透明度要必须写
                $("div").fadeTo(1000, 0.5);

            });


        });
    </script>

3.7  jQuery 效果 --- 自定义效果

        使用方法:

        animate(params,[speed],[easing],[fn])

        (1)params: 想要更改的样式属性,以对象形式传递,必须写。 属性名可以不用带引号, 如果是复合属性则需要采 取驼峰命名法 borderLeft。其余参数都可以省略。

        (2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

        (3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

        (4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。

    <div></div>
    <script>
        $(function() {
            $("button").click(function() {
                $("div").animate({
                    left: 500,
                    top: 300,
                    opacity: .4,
                    width: 500
                }, 500);
            })
        })
    </script>

3.8 jQuery鼠标事件综合

hover([over,]out)

        (1)over:鼠标移到元素上要触发的函数(相当于mouseenter)

        (2)out:鼠标移出元素要触发的函数(相当于mouseleave)

        (3)如果只写一个函数,则鼠标经过和离开都会触发它

            1. 事件切换 hover 就是鼠标经过和离开的复合写法
            $(".nav>li").hover(function() {
                $(this).children("ul").slideDown(200);
            }, function() {
                $(this).children("ul").slideUp(200);
            });
            2. 事件切换 hover  如果只写一个函数,那么鼠标经过和鼠标离开都会触发这个函数

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7422.html
标签
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!