jQuery-2.鼠标焦点事件、节点操作、遍历元素、效果

news2024/11/28 23:38:23

鼠标事件

鼠标事件是当用户在文档上移动或单击鼠标时而产生的事件,常用的鼠标事件:

方法

描述

执行时机

click()

触发或将函数绑定到指定元素的click事件

单击鼠标时

mouseover()

触发或将函数绑定到指定元素的mouse over事件

鼠标移过时

mouseout()

触发或将函数绑定到指定元素的mouse out事件

鼠标移出时

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>鼠标事件</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                // 切换样式
                $('div').toggleClass('div1')
            })
            $('div').mouseover(function(){
                $(this).addClass('div1')
            })
            $('div').mouseout(function(){
                $(this).removeClass('div1')
            })
        })
    </script>
    <style>
        .div1{
            background-color: blueviolet;
        }
    </style>
</head>
<body>
    <div id="div1">div</div>
    <button id="btn1">切换样式</button>
</body>
</html>

焦点事件

当元素获得焦点时,会触发focus事件,失去焦点时,会触发blur事件

方法

描述

执行时机

focus()

触发或将函数绑定到指定元素的focus事件

获得焦点

blur()

触发或将函数绑定到指定元素的blur事件

失去焦点

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>焦点事件</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $(':text').focus(function(){
                $(this).addClass('a')
            })
            $(':text').blur(function(){
                $(this).removeClass('a')
            })
        })
    </script>
    <style>
        .a {
            background-color: red;
        }
    </style>
</head>
<body>
    <input type="text">
</body>
</html>

节点操作

元素内部插入子节点

语法

功能

append(content)

$(A).append(B)表示将B追加到A中,如:$('ul').append($newNode1)

appendTo(content)

$(A).appendTo(B)表示把A追加到B中,如:$newNode1.appendTo('ul')

prepend(content)

$(A).prepend(B)表示将B前置插入到A中,如:$('ul').prepend($newNode1)

prependTo(content)

$(A).prependTo(B)表示将A前置插入到B中,如:$newNode1.prependTo('ul')

元素外部插入同辈节点

语法

功能

after(content)

$(A).after(B)表示将B插入到A之后,如:$('ul').after($newNode1)

insertAfter(content)

$(A).insertAfter(B)表示将A插入到B之后,如:$newNode1.insertAfter('ul')

before(content)

$(A).before(B)表示将B插入至A之前,如:$('ul').before($newNode1)

insertBefore(content)

$(A).insertBefore(B)表示将A插入到B之前,如:$newNode1.insertBefore('ul')

替换节点

replaceWith()和replaceAll()用于替换某个节点

复制节点

clone()用于复制某个节点

删除节点

remove()

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>节点操作1</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                // 创建一个新节点
                var li = '<li>千与千寻</li>'
                // 追加子节点
                $('ul').append(li)
                $(li).appendTo($('ul'))
                // 前置追加子节点
                $('ul').prepend(li)
                $(li).prependTo($('ul'))
                // 追加同辈节点
                $('ul').after(li)
                $('ul').before(li)
                // 替换节点
                $('li:eq(1)').replaceWith(li)
                $(li).replaceAll($('li:eq(1)'))
            })
            $('#btn2').click(function(){
                var newNode = $('ul').clone(true)
                $('ul').after(newNode)
            })
        })
    </script>
</head>
<body>
    <h2>热门动画排行</h2>
    <ul>
        <li>名侦探柯南</li>
        <li>阿拉蕾</li>
        <li>海贼王</li>
    </ul>
    <button id="btn1">增加节点</button>
    <button id="btn2">克隆节点</button>
</body>
</html>

获取与设置节点属性

attr()和prop()用来获取与设置元素属性

  • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法
  • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法

什么时候使用attr(),什么时候使用prop()?

  • 添加属性名称该属性就会生效时应该使用prop();例如:checked、disabled、readonly
  • 是有true、false两个属性使用prop();例如:checked
  • 其它则使用attr()

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>节点属性</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                alert($('.a1').prop('target'))
                alert($('.a2').prop('action'))  // undefined
            })
            $('#btn2').click(function(){
                alert($('.a1').attr('target'))
                alert($('.a2').attr('action'))  // hello
            })
            $('#btn3').click(function(){
                $('img').attr('src', 'images/03.jpg')
            })
            $('#btn4').click(function(){
                $('img').removeAttr('title')
            })
        })
    </script>
</head>
<body>
    <a href="#" class="a1" target="_blank">自身属性的超链接</a>
    <a href="#" class="a2" action="hello">自定义属性的超链接</a>
    <button id="btn1">prop获取属性</button>
    <button id="btn2">attr获取属性</button>
    <button id="btn3">attr设置属性</button>
    <button id="btn4">attr删除属性</button><br>
    <img src="" alt="" title="hello">
</body>
</html>

复选框练习

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>复选框练习</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                // 获取选中的复选框
                // normal
                /*var arr = $(":checkbox:checked");
                    $(arr).each(function(){
                        alert($(this).val());
                    })*/
                
                // prop
                var arr = $(':checkbox')
                var s = ''
                $(arr).each(function(){
                    if($(this).prop('checked')){
                        s += $(this).val()
                    }
                })
                alert(s)
            })
        })
    </script>
</head>
<body>
    A:<input type="checkbox" value="1">
    B:<input type="checkbox" value="2">
    C:<input type="checkbox" value="3">
    D:<input type="checkbox" value="4">
    <button id="btn1">获取被选中的复选框</button>
</body>
</html>

遍历元素

遍历子元素

children()方法可以用来获取元素的所有子元素

遍历同辈元素

jQuery可以获取紧邻其后、紧邻其前和位于该元素前与后的所有同辈元素

语法

功能

next([expr])

用于获取紧邻匹配元素之后的元素,如:$('li:eq(1)').next().css('background-color', '#F06')

prev([expr])

用于获取紧邻匹配元素之前的元素,如:$('li:eq(1)').prev().css('background-color', '#F06')

sibilings([expr])

用于获取位于匹配元素前面和后面的所有同辈元素,如:$('li:eq(1)').siblings().css('background-color', '#F06')

遍历前辈元素

parent():获取元素的父级元素

parents():获取元素的祖先元素

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>遍历节点元素</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#btn1').bind({   // 绑定事件
                'mouseover':function(){
                    $(this).css('background', 'red')
                },
                'mouseout':function(){
                    $(this).css('background', 'blue')
                }
            })
            $('#btn1').click(function(){
                var arr = $('body').children()
                $(arr).each(function(){
                    alert($(this).html())
                })
            })
            $('#btn2').click(function(){
                $('li:eq(1)').next().css('background', 'pink')
            })
            $('#btn3').click(function(){
                $('li:eq(1)').prev().css('background', 'pink')
            })
            $('#btn4').click(function(){
                $('li:eq(1)').siblings().css('background', 'violet')
            })
            $('#btn5').click(function(){
                $('li:eq(1)').parent().css('background','grey')
            })
            $('#btn6').click(function(){
                // $('a').parents().css('background', 'lightblue')  // 整个body背景颜色都会变
                $('a').parents('ul').css('background', 'lightblue')
            })
        })
    </script>
</head>
<body>
    <p>hello</p>
    <ul>
        <li><a href="#">小米的MI 2手机</a><span class="hot">火爆销售中</span></li>
        <li><a href="#">苹果iPad mini</a></li>
        <li><a href="#">三星GALAXY III</a></li>
        <li><a href="#">苹果iPhone 13</a></li>
    </ul>
    <button id="btn1">获取所有子元素</button>
    <button id="btn2">获取li1紧邻其后的元素</button>
    <button id="btn3">获取li1紧前一个元素</button>
    <button id="btn4">获取li1所有的相邻同辈元素</button>
    <button id="btn5">li1父辈元素</button>
    <button id="btn6">a祖先元素</button>
</body>
</html>

jQuery效果

淡入淡出

方法

效果

fadeIn(speed, callback)

淡入已隐藏的元素

fadeOut(speed, callback)

淡出可见元素

fadeToggle(speed, callback)

在fadeIn与fadeOut之间切换

fadeTo(speed, callback)

允许渐变为给定的不透明度(0-1)

参数说明:

  • speed:规定效果的时长。可以取:slow、fast、毫秒
  • callback:fading完成后所执行的函数名称

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>淡入淡出</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                $('#div1').fadeIn()
                $('#div2').fadeIn('slow')
                $('#div3').fadeIn(3000)
            })
            $('#btn2').click(function(){
                $('#div1').fadeOut()
                $('#div2').fadeOut('fast')
                $('#div3').fadeOut(2000)
            })
            $('#btn3').click(function(){
                $('#div1').fadeToggle()
                $('#div2').fadeToggle('slow')
                $('#div3').fadeToggle(2000)
            })
            $('#btn4').click(function(){
                $('#div1').fadeTo('slow', 0.1)
                $('#div2').fadeTo('fast', 0.4)
                $('#div3').fadeTo('slow', 0.8)
            })
        })
    </script>
</head>
<body>
    <button id="btn1">淡入</button>
    <button id="btn2">淡出</button>
    <button id="btn3">淡入/淡出</button>
    <button id="btn4">颜色变淡</button><br>
    <br>
    <div id="div1" style="width: 80px;height: 80px;display: none;background-color: red;"></div><br>
    <div id="div2" style="width: 80px;height: 80px;display: none;background-color: green;"></div><br>
    <div id="div3" style="width: 80px;height: 80px;display: none;background-color: blue;"></div>
</body>
</html>

滑动

方法

效果

slideDown(speed, callback)

向下滑动元素

slideUp(speed, callback)

向上滑动元素

slideToggle(speed, callback)

切换slideDown和slideUp

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>滑动事件</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#flip').click(function(){
                $('#pannel').slideToggle('slow')
            })
        })
    </script>
    <style>
        #flip, #pannel{
            margin: 0 auto;
            width: 800px;
            text-align: center;
            background-color: rgb(209, 241, 179);
            border: solid 1px gainsboro;
            font-size: 20px;
        }
        #flip{
            height: 80px;
            line-height: 80px;
        }
        #pannel{
            height: 200px;
            line-height: 200px;
            display: none;
        }
    </style>
</head>
<body>
    <div id="flip">点我下滑/拉起面板</div>
    <div id="pannel">hello world!</div>
</body>
</html>

动画效果

animate({params}, speed, callback)用于创建自定义动画

  • params参数定义形成动画的CSS属性。

默认情况下,所有HTML元素都有一个静态位置,且无法移动。如果需要对位置进行操作,首先要把元素的css的position属性设置为relative、fixed或者absolute。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动画效果</title>
    <script src="lib/jquery-1.11.2.min.js"></script>
    <script>
        $(function(){
            $('#btn1').click(function(){
                // 生成动画的过程中可以同时使用多个属性
                $('#div1').animate({
                    left: '250px',
                    opacity: '0.5',
                    height: '150px',
                    width: '+=150px'    // 可以使用相对值(相对于元素的当前值)
                })
            })
            $('#btn2').click(function(){
                // 可以把属性的动画值设置为:slow、hide、toggle
                $('#div2').animate({
                    height: 'toggle'
                })
            })
            $('#btn3').click(function(){
                // 动画的队列功能
                // 编写多个animate()时,会逐一运行这些animate调用
                var div = $("#div3");  
                div.animate({left:'100px'}, "slow");
                div.animate({fontSize:'3em'}, "slow");
            })
        })
    </script>
</head>
<body>
    <button id="btn1">动画1</button>
    <button id="btn2">动画2</button>
    <button id="btn3">动画3</button>
    <div id="div1" style="background:#98bf21;height:100px;width:100px;position:relative;"></div>
    <div id="div2" style="background:#f59e3b;height:100px;width:100px;position:relative;"></div>
    <div id="div3" style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>
</body>
</html>

停止jQuery效果

在动画或效果完成之前,stop()方法可以用于停止这些操作。

stop方法适用于所有jQuery效果函数,包括滑动、淡入淡出和自定义动画

stop(stopAll,goToEnd)

stopAll: 规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。

goToEnd:规定是否立即完成当前动画。默认是 false。

默认地,stop() 会清除在被选元素上指定的当前动画。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1670595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

体重秤蓝牙语音芯片方案-WT2605蓝牙音频ic在电子秤上的应用

在快节奏的现代生活中&#xff0c;健康成为了每个人关注的焦点。而体重作为健康指标之一&#xff0c;更是备受关注。如今&#xff0c;一款全新的智能体重秤蓝牙语音芯片方案正悄然改变着我们的健康管理方式&#xff0c;让健康触手可及。 性能&#xff1a; 1&#xff1a;蓝牙语…

.Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 发布到 Win7+

.Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 实测可以完整运行在 win7sp1/win10/win11. 如果用其他工具打包,还可以运行在mac/linux下, 传送门BlazorHybrid 发布为无依赖包方式 安装 WebView2Runtime 1.57 MB或136 MB 测试DEMO 发布为依赖包方式 安装 WebView2Runtime 1.…

渗透测试工具及插件第二期

一、OWASP Penetration Testing Kit 这个工具他集成了中间件&#xff0c;等版本信息&#xff0c;漏洞信息&#xff0c;url&#xff0c;标识头等信息&#xff0c;WAF/CDN识别&#xff0c;密匙等信息&#xff0c;多种信息的功能上集合的插件。 说明书&#xff1a;https://micros…

pwn(一)前置技能

以下是pwn中的题目&#xff08;漏洞&#xff09;类型&#xff1a; 关于pwn的学习&#xff1a; 一.什么是pwn&#xff1f;&#xff08;二进制的漏洞&#xff09; "Pwn"是一个俚语&#xff0c;起源于电子游戏社区&#xff0c;经常在英语中用作网络或电子游戏文化中的…

qt 5.15.x 安装android过程记录

1.经过好几天的qt for android 安装&#xff0c;发现存在很多坑 参考其他文章可以编译出APK文件。但是我发现(我的机器上)无法调试apk程序&#xff0c;不能调试那怎么行呢&#xff0c;看了很多文章都是运行出结果了就结束了。没有展示怎么调试程序。 很多文章都是建议安装JDK8…

Docker安装教程使用

一、Docker简介 什么是docker&#xff1a; docker是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上, 也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口什…

低代码在物品领用领域数字化转型的案例分析

办公用品管理数字化不仅代表了企业管理模式的革新&#xff0c;更是提升运营效率和成本控制的关键举措。通过数字化手段&#xff0c;企业能够实现采购、库存、领用等流程的自动化和智能化管理&#xff0c;大幅减少人工操作&#xff0c;提高处理速度&#xff0c;确保数据的准确性…

如何申请通配符SSL证书——值得收藏

申请通配符SSL证书的过程大致可以分为以下几个步骤&#xff1a; 1. 选择CA机构&#xff1a; 首先&#xff0c;您需要选择一个受信任的证书颁发机构&#xff08;Certificate Authority&#xff0c;简称CA&#xff09;&#xff0c;如DigiCert、GlobalSign、或JoySSL。确保所选机构…

2023年数维杯国际大学生数学建模挑战赛B题棉花秸秆热解的催化反应解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 B题 棉花秸秆热解的催化反应 原题再现&#xff1a; 随着全球对可再生能源需求的不断增加&#xff0c;生物质能作为一种成熟的可再生能源得到了广泛的关注。棉秆作为一种农业废弃物&#xff0c;由于其富含纤维素、木质素等生物质成分&am…

LangChain:模型 I/O 封装使用解析和感触

目录 模型 API&#xff1a;LLM vs. ChatModel OpenAI 模型封装 多轮对话 Session 封装 换个国产模型 模型的输入与输出 Prompt 模板封装 PromptTemplate ChatPromptTemplate MessagesPlaceholder 从文件加载 Prompt 模板 TXT模板 Yaml模板 Json模板 输出封装 Out…

[代码比较工具下载及使用]你真的需要一个代码比较工具

&#x1f496;&#x1f496;&#x1f496;欢迎来到我的博客&#xff0c;我是anmory&#x1f496;&#x1f496;&#x1f496; 又和大家见面了 欢迎来到资源分享系列 这里有你想要的各种高质量资源 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭建个人网站 …

被称为“数智化黑马”的红海云,凭何连续四年登上HR服务品牌百强榜?

近日&#xff0c;中国领先的人力资源媒体机构HRoot发布了2023年中华区人力资源服务机构品牌100强榜单。该榜单经历经十余年&#xff0c;评选标准从最初的品牌影响力&#xff0c;扩大至人力资源服务机构的财务状况、成长性、创新性等更多维度。该榜单分为人力资源服务、人力资源…

十进制整数转平衡三进制

求解原视频&#xff1a;平衡三进制 求赞&#xff01;100赞买个乒乓球拍&#xff01;_哔哩哔哩_bilibili 题目&#xff1a; 上海市计算机学会竞赛平台 | YACS 求解程序&#xff1a; using namespace std; #include <iostream> #include <cstring>string work(int n…

李廉洋:5.13黄金原油消息面面和行情分析,必看策略。

黄金方面&#xff1a;月初公布的美国非农等就业市场数据比较弱势&#xff0c;显示美国就业市场开始走软&#xff0c;美联储在就业市场开始变差的背景下&#xff0c;存在提前降息的可能性&#xff0c;这有利于推动金价走高。The         近期公布的美国5月密歇根大学消费者…

2024终南山整形美容学院首届全国腹壁整形学术交流会 国际医学顺利开展

四月芳菲尽&#xff0c;五月絮升华。5月11日&#xff0d;12日&#xff0c;《2024终南山整形美容学院首届全国腹壁整形学术交流会暨第二届崔鑫腹壁整形学习班》在西安国际医学中心医院如期召开。来自全国各大整形外科同行精英们&#xff0c;济济一堂&#xff0c;共同交流探讨腹壁…

五月采购节 | 全场板卡八七折起

淘宝搜索【北京迅为电子官方企业】 5月13日~5月15日 海量优惠券等你拿&#xff01; 复制下方链接到淘宝 直接进入店铺&#xff01; https://shop459378556.taobao.com

项目-坦克大战-让坦克动起来

为什么写这个项目 好玩涉及到java各个方面的技术 1&#xff0c;java面向对象 2&#xff0c;多线程 3&#xff0c;文件i/o操作 4&#xff0c;数据库巩固知识 java绘图坐标体系 坐标体系-介绍 坐标体系-像素 计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的像素是一…

netty配置SSL、netty配置https(生产环境)

netty配置SSL、netty配置https&#xff08;生产环境&#xff09; 上一篇提到了如何在开发环境使用SSL&#xff1a;https://lingkang.top/archives/netty-pei-zhi-ssl 转自&#xff1a;https://lingkang.top/archives/netty-pei-zhi-https 那么netty如何使用可信任的证书呢&a…

栈的实现与OJ括号匹配

今日备忘录: "不破不立. " 本文索引 1. 前言2. 顺序表与链表的区别3. 什么是栈4. 栈的实现5. OJ括号匹配6. 总结 1. 前言 人总是在坍塌中重建, 有些东西必须摧毁, 才能迎来新生, 不管是那些消耗你的人, 还是令你感到焦虑的事情, 还是一份你觉得毫无意义并且又不喜欢…

python(环境安装)搭建、pycharm安装、背景改为白色详细文章

安装python环境 1、下载python安装包 Welcome to Python.org&#xff08;官网链接&#xff09; 2、点击下载、windows、python3.12.3 安装python 执行安装程序、安装选项 选择下面两项 翻译 Use admin privieges when installing py.exe是使用administrator超级管理员用户安…