【JavaScript】JQuery基础知识及应用

news2024/11/17 6:48:13

一、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.coloradmin.cn/o/2175248.html

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

相关文章

iOS 项目中的多主题颜色设计与实现

引言 在现代iOS应用中&#xff0c;用户对个性化体验的需求越来越高&#xff0c;除了功能上的满足&#xff0c;多样的视觉风格也是提升用户体验的重要手段之一。提供多主题颜色的切换功能不仅能满足用户的审美偏好&#xff0c;还可以让应用更具活力&#xff0c;适应不同场景下的…

在LLMs模型中发现人类的记忆特征

论文地址&#xff1a;https://arxiv.org/abs/2311.03839 介绍 大型语言模型&#xff08;LLM&#xff09;&#xff0c;如 ChatGPT&#xff0c;为语言建模和生成人类水平的文本输出带来了质的飞跃。 这些模型在庞大的文本库中进行训练&#xff0c;有效地建立了高度复杂和准确的…

队列——单调队列

题目描述 有一个大小为 k 的滑动窗口&#xff0c;它从数组的最左边移动到最右边。 你只能在窗口中看到 k 个数字。 每次滑动窗口向右移动一个位置。 例如&#xff1a;[1, 3, −1, −3, 5, 3, 6, 7] k3。 有一个长为 n 的序列 a&#xff0c;以及一个大小为 k 的窗口。现在这个从…

哈希表(HashMap、HashSet)

文章目录 一、 什么是哈希表二、 哈希冲突2.1 为什么会出现冲突2.2 如何避免出现冲突2.3 出现冲突如何解决 三、模拟实现哈希桶/开散列&#xff08;整型数据&#xff09;3.1 结构3.2 插入元素3.3 获取元素 四、模拟实现哈希桶/开散列&#xff08;泛型&#xff09;4.1 结构4.2 插…

javaweb之会话管理

Cookie&#xff1a; 1. Cookie 的定义 Cookie 是存储在用户浏览器中的小块数据&#xff0c;通常由服务器发送并存储&#xff0c;以便在用户浏览器和服务器之间保持会话状态。每次用户发送请求时&#xff0c;浏览器都会自动附带相应的 Cookie&#xff0c;允许服务器辨识用户。…

58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录深度循环神经网络1. 模型复杂性增加2. 训练数据不足3. 梯度消失和爆炸4. 正则化不足5. 特征冗余总结 函数依赖关系简洁实现训练与预测小结练习 深度循环神经网络 &#x1f3f7;sec_deep_rnn 到目前为止&#xff0c;我们只讨论了具有一个单…

基于大数据的亚健康人群数据分析及可视化系统

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

在vsCode中将某个字符替换成换行符并且换行展示

将下面一行字符串中的“,”替换成换行符并且换行展示。 CTRLF键检索&#xff0c;查找和替换内容根据如下图输入即可。 点击全部替换后得到如下结果&#xff1a;

图文深入理解Oracle Network配置管理(二)

本篇图文深入介绍Oracle Network配置管理。 Oracle网络配置的目的 为了方便对Oracle 数据库进行管理&#xff0c;一般以下情况应该对Oracle进行网络配置。 • 在客户端对服务器端数据库进行管理&#xff08;网络客户端管理&#xff09; • 在一台服务器上管理多个数据库&…

性能测试学习1:性能测试的理论与目的,与功能测试的区别

一.什么是性能&#xff1f; 1&#xff09;性能&#xff1a;就是软件质量属性中的“效率”特性 2&#xff09;效率特性: ①时间特性&#xff1a;表示系统处理用户请求的响应时间【通俗来说&#xff0c;就是使用系统是否流畅】 ②资源特性&#xff1a;表示系统运行过程中&…

青动CRM-仓储云V1.1.2

多平台(微信公众号(高级授权)、微信小程序(高级授权)、H5网页(高级授权)、Android-App(高级授权)、iOS-App(高级授权))仓库管理系统&#xff0c;拥有强大的表单设计、多角色员工权限、出入库管理、仓库管理、送货管理、自定义审批流、绩效管理、客户管理、合同管理等功能。提供…

抖音支付回调验签 go 版本

序言 最近在做抖音小程序支付&#xff0c;由于抖音开放平台的文档写的较为简陋&#xff0c;让人踩了不少坑&#xff0c;在这里整理一下做小程序支付的整个过程&#xff0c;以通用交易系统为例子。 准备条件 1&#xff09;申请小程序&#xff0c;开通支付功能 这里需要明确你小…

Linux--基本指令

目录 1.ls指令 ​2.pwd指令 3.cd指令 4.tree指令 5.touch/mkdir/rmdir(rm)指令 6.cp/mv/cat/tac指令 7.head/tail/管道 8.date 9.find/which/grep 10.其它小知识 1.ls指令 补充知识&#xff1a; 2.pwd指令 补充知识&#xff1a; 3.cd指令 补充知识&#xff1a; 4.tree指令 …

Java语法-类和对象之抽象类和接口

1.抽象类 1.1 抽象类的概念 一个类中没有足够的信息来描述一个具体的对象,这样的类就是抽象类 比如: 从图中我们可以看出,只有继承了的类,我们产生的实例,调用的draw方法都是他们本身重写的draw方法,不会调用父类Shape的draw()方法,因此我们可以不管父类里面的draw()方法里面的…

MySQL 之多表设计详解

在实际应用场景中&#xff0c;我们经常需要处理包含多种数据实体及其之间复杂关系的业务逻辑&#xff0c;例如电商平台的用户、商品、订单&#xff0c;社交网络的用户、帖子、评论等等。如果将所有数据都堆砌在一张表中&#xff0c;不仅会造成数据冗余、难以维护&#xff0c;还…

MySQL 8.0.34 从C盘迁移到D盘

因为开始C盘够用&#xff0c;没注意mysql安装位置&#xff0c;如今C盘爆满&#xff0c;只能把mysql转移到D盘&#xff0c;以腾出更多的空间让我折腾。 一、关闭mysql服务 二、找到C盘MySQL安装文件和Data文件 1.找到C盘mysql bin文件目录安装文件路径&#xff1a; C:\Progra…

行为设计模式 -模板方法模式- JAVA

模板方法模式 一 .简介二. 案例2.1 抽象类&#xff08;Abstract Class&#xff09;2.2 具体子类&#xff08;Concrete Class&#xff09;2.3 测试 三. 结论3.1 优缺点3.2 适用场景3.3 要点 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接…

linux从入门到精通--从基础学起,逐步提升,探索linux奥秘(六)

linux从入门到精通–从基础学起&#xff0c;逐步提升&#xff0c;探索linux奥秘&#xff08;六&#xff09; 一、linux高级指令&#xff08;1&#xff09; 1、hostname指令 1&#xff09;作用&#xff1a;操作服务器的主机名&#xff08;读取、设置&#xff09; 2&#xff0…

huggingface的transformers与datatsets的安装与使用

目录 1.安装 2.分词 2.1tokenizer.encode&#xff08;&#xff09; 2.2tokenizer.encode_plus &#xff08;&#xff09; 2.3tokenizer.batch_encode_plus&#xff08;&#xff09; 3.添加新词或特殊字符 3.1tokenizer.add_tokens&#xff08;&#xff09; 3.2 token…

Python自动收发邮件的详细步骤与使用方法?

Python自动收发邮件教程&#xff1f;Python怎么实现收发邮件&#xff1f; Python作为一种强大的编程语言&#xff0c;提供了丰富的库和工具&#xff0c;使得自动收发邮件变得简单而高效。AokSend将详细介绍如何使用Python自动收发邮件&#xff0c;帮助读者掌握这一实用技能。 …