美文网首页简友广场想法好文有约
Python(四十二)jQuery选择器、样式操作、事件和动画

Python(四十二)jQuery选择器、样式操作、事件和动画

作者: Lonelyroots | 来源:发表于2022-01-02 21:15 被阅读0次

    Python(四十二)jQuery选择器、样式操作、事件和动画

    这篇文章内容涉及的主要是JavaScript中的一个库,也是一个JavaScript文件,名叫jQuery。

    1. jQuery介绍

    1.1. jQuery介绍

    jQuery是一个JavaScript库,也是一个JS文件。jQuery虽然封装实现了很多的方法,让使用变得更加简单不再像JavaScript那样需要使用大量的方法调用。但jQuery也只是实现了一些方法,还有些不能实现,所以能够使用jQuery是实现的,JavaScript都能做,但是能够用JavaScript做的,jQuery不一定能够实现。

    1.2. jQuery理念

    代码量少,功能却强大。

    1.3. jQuery特性

    ①丰富而又强大的语法(CSS选择器),来查询文档元素;
    ②高效的查询方法,用来找到与CSS选择器匹配的文档元素集;
    ③有一套有用的方法,用来操作选中的元素;
    ④强大的函数式编程技巧,用来批量操作元素集,而不是每次只操作单个;
    ⑤简介的语言用法(链式用法),用来表示一系列的顺序操作。

    1.4. jQuery的学习

    jQuery的国内翻译学习网站链接:https://jquery.cuishifeng.cn/;
    前端资源查找:https://www.bootcdn.cn/;
    jQuery的标准版本:https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js;
    需要在代码文件里加入这句话<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>才可以使用jQuery方法。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>introduction to jQuery</title>
    </head>
    <body>
    
        <p id="p1">111</p>
        <p class="p2">222</p>
        <p>333</p>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
        <script>
            $(
                function (){
                    alert('666')
                }
            )
    
            // JS写法
            var ap=document.getElementsByTagName('p')[0]
            console.log(ap);
            // // ap.innerText="666"       //JS中修改元素的方法
            // ap.text('666')      //JS不能用jQ的方法,会报错
            $(ap).text('666')      // 这样写就可以用jQ的方法
    
            // jQ写法
            $('p').text('777')      // 标签
            $('#p1').text('444')     // id
            $('.p2').text('666')    // class
            $('#p1').innerText="666"        // jQ不能用JS的方法,无反应
            $('#p1')[0].innerText='777'     // 通过中括号下标,jQ就可以使用JS的方法
            $('p').get(1).innerText='888'
        </script>
    
    </body>
    </html>
    

    2. jQuery操作HTML属性

    $('p'):一般都是通过美元符来获取标签或者标签对应的属性,这里是p标签。
    $("p").eq(2).attr("class","p2"):jQuery添加属性的方法,通过eq()获取下标值,单独添加。
    attr:后跟两个参数,有则改无则增;后跟一个参数,则是获取对应的属性。
    removeAttr:删除属性,不留下class。

    this是javascript自身的语法关键字,它指向一个javascript对象,所以可以使用所指向的目标javascript对象所拥有的方法, 但他自己不是一个普通的变量,所以无法自己定义一个变量叫this。

    欲了解更多请看下方代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>jQuery operation HTML attribute</title>
        <style>
            .p2{
                color: thistle;
            }
            .p3{
                background-color: cornflowerblue;
            }
        </style>
    </head>
    <body>
    
        <p id="p1">111</p>
        <p class="p2">222</p>
        <p>333</p>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
        <script>
            $("p").eq(2).attr("class","p2")     // 添加属性,eq()获取下标值,单独添加
            $("p").attr('class',"p1")       // class属性有则改,无则增
            console.log($("p").attr("class"));        // 获取属性
            $("p").removeAttr('class')      // 删除属性————不留class
    
            $("p").addClass('p2')       // 所有的都添上p2,可以添加多个Class属性
            $("p").addClass('p3')       // 所有的都添上p3,可以添加多个Class属性
            $("p").removeClass('p3')    // 传class值,只移除传的class值,不传class值,则移除全部————留下class
            $("p").toggleClass('p3')        // 有就删,没有就加。
            $("p").toggleClass('p3')        // 有就删,没有就加。
    
            // 在jQ中,设置某个值的时候,一般自带遍历
            $('p').html('我是段落标签')       // 直接改变标签内容
    
            // each方法,在jQ中,设置某个值的时候,一般自带遍历
            $('p').each(function (i){
                // this.innerText='6666'
                $(this).text('我是第'+(i+1)+'个列表')
            })
    
            $('p').click(function (){
                alert($(this).index())
            })
        </script>
    
    </body>
    </html>
    

    3. jQuery操作CSS样式

    可以与事件结合,来改变css样式。不加{}则修改单个样式,反之则修改多个样式。

    欲了解更多请看下方代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>jQuery operation CSS style</title>
    </head>
    <body>
        <p id="p1">111</p>
        <p class="p2">222</p>
        <p>333</p>
        <button id="btn1">按钮1</button>
        <button id="btn2">按钮2</button>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
        <script>
            // 修改单个CSS样式
            $('#btn1').click(function (){
                $('#p1').css('color','blue')
            })
            // 修改多个CSS样式
            $('#btn2').click(function (){
                $('#p1').css({
                    "color":"red","font-size":"22px","background-color":"blue",'padding':'20px'
                })
                // 只能拿到P标签的宽度高度,不能设置值
                alert($('p').innerWidth())     // 获得宽,包括内边距
                alert($('p').innerHeight())    // 获得高,包括内边距
            })
            // 括号里未写值,则为拿到p的宽度/高度;写了值,则为设置宽度/高度
            $('p').width('400px')
            $('p').height('30px')
            // 只能拿到P标签的宽度高度,不能设置值
            $('p').innerWidth()     // 获得宽,包括内边距
            $('p').innerHeight()    // 获得高,包括内边距
            // 获得盒子模型的宽度高度
            $('p').outerWidth()     // 拿到盒子模型的宽度
            $('p').outerHeight()    // 拿到盒子模型的高度
        </script>
    
    </body>
    </html>
    

    4. jQuery事件

    click():单击事件;
    dblclick():双击事件;
    hover():鼠标移入移出事件;
    mouseenter():鼠标移入事件;
    mouseleave():鼠标移出事件;

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>jQuery event</title>
    </head>
    <body>
    
        <p id="p1">111</p>
        <p class="p2">222</p>
        <p>333</p>
        <button>清除事件</button>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
        <script>
            // 单击事件
            $('p').click(function (){
                $('p').text('猜猜我是谁')
            })
    
            // 双击事件
            $('p').dblclick(function (){
                $('p').text("我是jQuery呀")
            })
    
            // 鼠标移入移出
            $('p').hover(function (){        // 移入
                $('p').text('我又变了')
            },function() {                   // 移出
                $('p').text('我变回来啦')
            })
    
            // 鼠标移入移出
            $('p').mouseenter(function (){      // 鼠标移入
                $('p').text('他走了,我不是你要找的')
            })
            $('p').mouseleave(function (){      // 鼠标移出
                $('p').text('他走了,我也不是你要找的')
            })
    
            // 绑定单击事件
            $('p').on('click',function (){
                $(this).css('color','red')
            })
    
            // 清除单击事件
            $('button').click(function (){
                $('p').off('click')
            })
        </script>
    </body>
    </html>
    

    5. jQuery动画

    hide:隐藏;
    show:显示;
    slideUp:向上隐藏;
    slideToggle:取反,向上隐藏的反操作,向下显示;
    slideDown:向下显示;
    fadeOut:淡出;
    fadeToggle:取反,淡出的反操作,隐现;
    fadeIn:隐现;
    fadeTo:这里有两个参数,一个是速度(毫秒、slow、normal、fast),一个是透明度,速度参数不能省略;
    animate():animate函数的内容:只有数字值才可创建动画(比如 "margin:30px"),字符串值无法创建动画(比如 "background-color:red");
    stop:动画停止。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>jQuery animation</title>
        <style>
            #p1{
                width: 100px;
                height: 100px;
                background-color: thistle;
                position: relative;
            }
        </style>
    </head>
    <body>
    
        <p id="p1"></p>
        <button id="btn1">按钮1</button>
        <button id="btn2">按钮2</button>
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
        <script>
            // 用2秒时间隐藏
            $('#btn1').click(function (){
                $('p').hide(2000)
            })
            // 用3秒时间显示
            $('#btn2').click(function (){
                $('p').show(3000)
            })
    
            // 向上隐藏
            $('#btn1').click(function (){
                $('p').slideUp(2000)
                $('p').slideToggle(2000)        // 取反,向上隐藏的反操作:向下显示
            })
            // 向下显示
            $('#btn2').click(function (){
                $('p').slideDown(2000)
            })
    
            // 淡出,慢慢消失
            $('#btn1').click(function (){
                $('p').fadeOut(2000)            // 淡出,慢慢消失
                $('p').fadeToggle(2000)        // 取反,淡出的反操作:隐现
            })
            // 隐现—lomming
            $('#btn2').click(function (){
                $('p').fadeIn(2000)
            })
    
            // 淡出到透明度为0.2的时候,就不淡出了
            $('#btn1').click(function (){
                $('p').fadeTo(2000,0.2)
            })
    
            // 动画耗时2s,期间若有暂停,再按下按钮1,需延迟3秒后才可以继续展示动画
            $('#btn1').click(function (){
                // animate的内容:只有数字值才可创建动画(比如 "margin:30px"),字符串值无法创建动画(比如 "background-color:red")。
                $('p').animate({
                    "width":'200px','height':'200px','left':'100px'     // 使用left前,需要先将定位属性调为相对定位
                },2000).delay(3000)
            })
            // 按下按钮2,动画停止
            $('#btn2').click(function (){
                $('p').stop()
            })
        </script>
    
    </body>
    </html>
    

    文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去,一起加油!

    Editor:Lonelyroots

    相关文章

      网友评论

        本文标题:Python(四十二)jQuery选择器、样式操作、事件和动画

        本文链接:https://www.haomeiwen.com/subject/pqrtcrtx.html