简友广场想法好文有约

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

2022-01-02  本文已影响0人  Lonelyroots

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

上一篇下一篇

猜你喜欢

热点阅读