【JavaScript】JQuery基础知识及应用

一、JQuery的导入方法

https://editor.csdn.net/md/?articleId=132214798

二、JQuery介绍

  • JQuery(JQ):JS的一个类库(方法库:包含了大量的、有助于项目开发的属性和方法)

  • 第一代版本1.xx.xx: 1.11.3 兼容所有浏览器的(包含IE6~8)

    • -> 没有vue / react / angular 等框架之前(数据驱动),项目都是基于操作DOM完成的,基本上项目中都是使用JQ来完成的
  • 第二代版本2.xx.xx: 放弃了低版本浏览器的兼容处理,迎合了一些移动端的开发处理(同时诞生一个比JQ更懂移动端的类库Zepto,所以第二代版本是一个鸡肋

  • 第三代版本3.xx.xx: 没有处理低版本浏览器的兼容,但是此时项目进入到框架开发的时代,传统操作DOM的思想zu步被摒弃,所以JQ已经没落下来了

  • API手册:《锋利的JQ第二部》https://jquery.cuishifeng.cn

在这里插入图片描述

三、JQuery中需要了解的

1. 选择器:获取需要操作的元素(JQ对象 -> 类数组集合)

  • 只有JQ对象才可以调取JQ提供的一些操作DOM的方法

2. 操作DOM的方法

  • 筛选方法:
children / find / filter / eq(get) / prev / prevAll / next / nextAll / siblings / index...
  • 操作样式:
css / addClass / removeClass / toggleClass / hasClass / width / height / innerWidth / innerHeight / outerWidth / outerHeight / offset...
  • 操作内容:
html / text / val / append /appendTo / insertAfter / insertBefore / attr...
  • 控制动画
animate / stop / finish / fadeIn / fadeOut / hidde / show / slideDown / slideUp / slideToggle...
  • 控制事件绑定
on / off / bind / unbind / delgate / one...

3. 工具类方法

each / ajax…

4. 实例

  • 实例1: 控制盒子的显示和隐藏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 这里先清除浏览器的默认样式,这里没有这个文件 -->

    <!-- 自定义样式 -->
    <style>
        html,
        body {
            height: 100%;
            overflow-x: hidden;
            background: #f3f3f3;
        }

        .asideImageBtn {
            position: fixed;
            right: 50px;
            bottom: 150px;
            z-index: 999;

            box-sizing: border-box;
            width: 60px;
            height: 60px;
            background: rgba(255, 255,255,1);
        }

        .asideImageBtn:hover{
            background: #C6DFF8;
        }

        .asideImageBtn .icon {
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
            width: 80%;
            height: 80%;
        }

        .asideImageBtn .detail {
            display: none;
            position: absolute;
            left: -176px;
            top: -70;
            box-sizing: border-box;
            padding: 25px 0 20px;
            width: 150px;
            background: #fff;
        }

        .asideImageBtn .detail img{
            display: block;
            margin: 0 auto 5px;
            width: 100px;
            height: 100px;
        }

        .asideImageBtn .detail p {
            line-height: 25px;
            font-size: 14px;
            text-align: center;
        }

        .asideImageBtn .detail:after {
            position: absolute;
            right: -12px;
            top: 50%;
            transform: translateY(-50%);
            content: '';
            width: 0;
            height: 0;
            border: 6px solid transparent;
            border-left-color: #fff;
        }

        /* 鼠标划过按钮盒子,控制详情显示隐藏 */
        /* .asideImageBtn:hover .detail {
            display: block;
        } */

        
    </style>
</head>
<body>
    <div class="asideImageBtn">
        <!-- ICON图标 -->
        <img src="image/屏幕快照 2023-08-02 下午9.42.15.png" alt="" class="icon">

        <div class="detail">
            <div class="content">
                <img src="image/屏幕快照 2023-08-02 下午9.50.15.png" alt="">
                <p>下载腾讯体育</p>
                <p>随时随地看直播</p>
            </div>
        </div>
    </div>
    <script src="jquery.js"></script>
    <script>
        // $ 是jquery 的专属写法,获取元素
        let $asideImageBtn = $('.asideImageBtn'),
            $detail = $asideImageBtn.children('.detail');

        // 法一:
        /* $asideImageBtn.click(function(){
            // toggle:hide / show 根据当前显示和隐藏状态自动切换
            $detail.toggle();
        }) */

        // 法二:
        //JQ中的事件绑定  " .on('click', [callback])" 标准写法,  " .click([callback])" 快捷事件绑定方法
        // 也可以这样写:$asideImageBtn.on(‘click',function() {});
        $asideImageBtn.click(function(){
            //css
            //  JQ对象.css([attr]) : 获取元素的样式  -> 内部基于getComputedStyle获取
            //  JQ对象.css([attr], [value]) : 设置元素的样式  -> 内部基于.style.xxx 设置行内样式
            //  JQ对象.css({width:100, height:200...}) : 批量设置元素的样式  
            let state = $detail.css('display');
            if(state==='none'){
                $detail.css('display','block');
            }else{
                $detail.css({
                    display:'none'
                });
            }
        });

    </script>

</body>

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 实例2: 选项卡切换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 这里先清除浏览器的默认样式,这里没有这个文件 -->
    <link rel="stylesheet" href="index.css">
    <script src="jquery.js"></script>
    <style>
        .tabBox {
            box-sizing: border-box;
            margin: 20px auto;
            width: 360px;
        }

        .tabBox .tab {
            box-sizing: border-box;
            height: 36px;
            line-height: 36px;
            border: 1px solid #DBDDE1;
            background: #EEE;

            display: flex;
            justify-content: flex-start;
            align-items: center;
        }

        .tabBox .tab li {
            box-sizing: border-box;
            height: 34px;
            padding: 0 13px;
            padding: 0 13px;
            border-top: 3px solid transparent;
        }
        .tabBox .tab li.active {
            border-top-color: #FF8400;
            background: #FFF;
            margin-top: -1px;
        }

        .tabBox .tab li a {
            font-size: 18px;
            color: #000;
            font-weight: 300;
        }

        .tabBox .tab li a:hover {
            color: #FF8400;
        }
        
        .tabBox .content {
            display: none;
            box-sizing: border-box;
            padding-top: 15px;
            height: 220px;
            overflow:hidden;
        }

        .tabBox .content.active {
            display: block;
        }

        .tabBox .content img {
            display: block;
            width: 100%;
        }
    </style>
    
</head>
<body>
    <section class="tabBox">
        <!-- 页卡 -->
        <ul class="tab">
            <li class="active"><a href="#">图片</a></li>
            <li><a href="#">专栏</a></li>
            <li><a href="#">热点</a></li>
        </ul>
        <!-- 内容 -->
        <div class="content active" ><img src="image/lyf1.jpeg" alt=""></div>
        <div class="content"><img src="image/lyf2.jpeg" alt=""></div>
        <div class="content"><img src="image/lyf3.jpeg" alt=""></div>
        
    </section>
    
    <script>
        let $tabBox = $('.tabBox'),
            $tabList = $tabBox.find('.tab>li'),
            $contentList = $tabBox.children('.content');
        
        // 法一:
        // JQ中有一个内置循环机制:给一个JQ对象集合直接的事件绑定或者修改样式等,则JQ内部会默认帮助我们做循环处理,分别会为集合中的每一项都做处理...
        $tabList.mouseenter(function(){
            // this->当前操作的这一项(原生DOM对象)
            // index()->获取当前项的索引(在其兄弟中的排名)
            // silbings()->获取当前元素所有的兄弟
            // addClass、removeClass-> 新增或者移除样式类
            let $this = $(this),
                index = $this.index();
            $this.addClass('active').siblings().removeClass('active');
            $contentList.eq(index).addClass('active').siblings('.content').removeClass('active');

        });


        // 法二:
        //  依然是按照循环事件绑定的思路
        // -> each 用来循环集合中的每一项(有点类似于数组的 forEach )
 /*        $tabList.each(function(index,item){
            // index -> 当前循环这一项的索引
            // item -> 当前循环的这一项(原生DOM对象)
            // this -> item
            // $(this).on('mouseenter',function(){});
            $(this).mouseenter(function(){});
        }) 
*/
       
    </script>

</body>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第443题压缩字符串

题目&#xff1a; 题解&#xff1a; void swap(char *a, char *b) {char t *a;*a *b, *b t; }void reverse(char *a, char *b) {while (a < b) {swap(a, --b);} }int compress(char *chars, int charsSize) {int write 0, left 0;for (int read 0; read < charsSi…

如何在NetCore8.0 Swagger 里配置多版本

话不多说 &#xff0c;先看效果 要做成以上效果也不难。请跟好脚步&#xff0c;下面带你们一步一步来做 首先要新建一个类 ApiVersionInfo public class ApiVersionInfo{/// <summary>/// 获取或者设置 V1 版本。/// </summary>public static string 软件版本 &qu…

低代码BPA(业务流程自动化)技术探讨

一、BPA流程设计平台的特点 可视化设计工具 大多数BPA流程设计平台提供直观的拖拽式界面&#xff0c;用户可以通过图形化方式设计、修改及优化业务流程。这种可视化的方式不仅降低了门槛&#xff0c;还便于非技术人员理解和参与流程设计。集成能力 现代BPA平台通常具备与其他系…

如何挑选适合的LED芯片

在LED显示屏的应用中&#xff0c;LED芯片作为核心部件&#xff0c;其质量和性能直接影响到整个显示系统的表现。然而&#xff0c;面对市场上琳琅满目的LED芯片产品&#xff0c;消费者常常会感到迷茫&#xff0c;不知道该如何选择。本文将为您介绍一些挑选适合LED芯片的关键要点…

Go基础学习08-并发安全型类型-通道(chan)深入研究

文章目录 chan基础使用和理解通道模型&#xff1a;单通道、双通道双向通道单向通道单向通道的作用 缓冲通道和非缓冲通道数据发送和接收过程缓冲通道非缓冲通道 通道基本特性通道何时触发panicChannel和Select结合使用Select语句和通道的关系Select语句的分支选择规则有那些Sel…

基于Hive和Hadoop的招聘分析系统

本项目是一个基于大数据技术的招聘分析系统&#xff0c;旨在为用户提供全面的招聘信息和深入的职位市场分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark 为核…

旺店通ERP集成金蝶K3(旺店通主供应链)

源系统成集云目标系统 金蝶K3介绍 金蝶K3是一款ERP软件&#xff0c;它集成了供应链管理、财务管理、人力资源管理、客户关系管理、办公自动化、商业分析、移动商务、集成接口及行业插件等业务管理组件。以成本管理为目标&#xff0c;计划与流程控制为主线&#xff0c;通过对成…

Vue开发前端图片上传给java后端

前端效果图 图片上传演示 1 前端代码 <template><div><!-- 页面标题 --><h1 class"page-title">图片上传演示</h1><div class"upload-container"><!-- 使用 van-uploader 组件进行文件上传&#xff0c;v-model 绑…

Golang | Leetcode Golang题解之第443题压缩字符串

题目&#xff1a; 题解&#xff1a; func compress(chars []byte) int {write, left : 0, 0for read, ch : range chars {if read len(chars)-1 || ch ! chars[read1] {chars[write] chwritenum : read - left 1if num > 1 {anchor : writefor ; num > 0; num / 10 {…

BFS的上下左右搜索问题(递归和迭代)

目录 一题目&#xff08;单词搜索问题&#xff09;&#xff1a; 二思路解释&#xff1a; 三解答代码&#xff1a; ​编辑 四题目&#xff08;腐烂的苹果&#xff09;&#xff1a; 五思路解释&#xff1a; 六解答代码&#xff1a; ​​​​ 一题目&#xff08;单词…

生信初学者教程(十五):差异结果的热图

文章目录 介绍加载R包导入数据画图函数热图输出结果总结介绍 热图是一种数据可视化工具,用于展示矩阵数据中的数值大小,通过颜色的深浅或色调变化来表示不同的数值。通常用于生物信息学、统计学和数据分析等领域,以便直观地比较和分析大量数据。 热图展示的是一个二维的数据…

ESP32 Bluedroid 篇(1)—— ibeacon 广播

前言 前面我们已经了解了 ESP32 的 BLE 整体架构&#xff0c;现在我们开始实际学习一下Bluedroid 从机篇的广播和扫描。本文将会以 ble_ibeacon demo 为例子进行讲解&#xff0c;需要注意的一点是。ibeacon 分为两个部分&#xff0c;一个是作为广播者&#xff0c;一个是作为观…

“数字武当”项目荣获2024年“数据要素×”大赛湖北分赛文化旅游赛道一等奖

9月26日&#xff0c;由国家数据局、湖北省人民政府指导的首届湖北省数据要素创新大会暨2024年“数据要素”大赛湖北分赛颁奖仪式在湖北武汉举行。由大势智慧联合武当山文化旅游发展集团有限公司参报的武当山“数字武当”项目&#xff0c;荣获文化旅游赛道一等奖。 据悉&#x…

VIVADO IP核之FIR抽取器多相滤波仿真

VIVADO IP核之FIR抽取器多相滤波仿真&#xff08;含有与MATLAB仿真数据的对比&#xff09; 目录 前言 一、滤波器系数生成 二、用MATLAB生成仿真数据 三、VIVADO FIR抽取多相滤波器使用 四、VIVADO FIR抽取多相滤波器仿真 五、VIVADO工程下载 总结 前言 关于FIR低通滤波…

[论文精读]TorWard: Discovery, Blocking, and Traceback of Malicious Traffic Over Tor

期刊名称&#xff1a;IEEE Transactions on Information Forensics and Security 发布链接&#xff1a;TorWard: Discovery, Blocking, and Traceback of Malicious Traffic Over Tor | IEEE Journals & Magazine | IEEE Xplore 中文译名&#xff1a;TorWard&#xff1a;…

基于python+django+vue的电影数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

【工具分享】BigBobRoss勒索病毒解密工具

前言 BigBobRoss勒索软件首次被发现于2019年初。它由C编写&#xff0c;并使用了QT框架。该勒索软件的加密方法相对基础&#xff0c;使用AES-128 ECB算法对受害者的文件进行加密。尽管加密技术并不复杂&#xff0c;但它的传播和影响力迅速扩展&#xff0c;导致大量用户的数据被…

vs2019从一个含main函数的cpp文件到生成动态生成库

小白&#xff0c;只会写简单的cpp文件&#xff0c;算法写完之后需要项目工程化&#xff0c;和上位机开发人员完成交接&#xff0c;记录一下。 文章目录 一、VS创建空项目二、编写代码 一、VS创建空项目 点击下一步&#xff0c; 我这里创建的项目名称为LidarCoreDetection 位置D…

AdaptIoT——制造业中使用因果关系的自我标签系统

0.概述 论文地址&#xff1a;https://arxiv.org/abs/2404.05976 在许多制造应用中&#xff0c;机器学习&#xff08;ML&#xff09;已被证明可以提高生产率。针对制造业应用提出了一些软件和工业物联网&#xff08;IIoT&#xff09;系统&#xff0c;以接收这些 ML 应用。最近&…

FastAPI 第六课 -- 请求和响应

目录 一. 前言 二. 请求数据 2.1. 查询参数 2.2. 路径参数 2.3. 请求体 三. 响应数据 3.1. 返回 JSON 数据 3.2. 返回 Pydantic 模型 3.3. 请求头和 Cookie 四. 重定向和状态码 五. 自定义响应头 一. 前言 在 FastAPI 中&#xff0c;请求&#xff08;Request&#…