JQuery | 系统性学习 | 无知的我费曼笔记

news2025/1/12 1:37:31

无知的我已经复盘完成JQuery 。。。

文章目录

  • JQuery
  • 概述
  • 入口函数
  • 特性-隐式迭代
  • Dom和JQuery
    • 区别
    • 互相转化
  • JQuery选择器
    • 基本和层级选择器
    • 筛选选择器
      • 后缀筛选
      • 方法筛选
    • 应用排他思想
    • 应用链式编程
  • JQuery操作样式
    • 修改样式CSS
    • 修改类名
  • JQuery效果
    • 基础效果
      • 显示效果
      • 隐藏效果
      • 切换效果
    • 滑动效果
    • 事件切换
    • 案例-tab栏切换
    • 停止动画排队
    • 淡入淡出效果
    • 自定义动画
  • JQuery操作属性
    • 内容-语法
    • 案例-购物车全选
  • JQuery操作文本值
    • 语法-例子
    • 案例-增加商品数量
    • 案例-修改商品小计
  • JQuery遍历
    • each方法
    • $.each方法
  • JQuery操作元素
    • 案例-清理购物车

JQuery

概述

历史

jQuery 是一个快速、简洁的 JavaScript 库,其设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。

j 就是 JavaScript; Query 查询; 意思就是查询js,把js中的DOM操作做了封装,我们可以快速的查询使用里面的功能。

作用

jQuery 封装了 JavaScript 常用的功能代码,优化了 DOM 操作、事件处理、动画设计和 Ajax 交互。

jQuery 出现的目的是加快前端人员的开发速度,我们可以非常方便的调用和使用它,从而提高开发效率。

优点

  • 轻量级。核心文件才几十kb,不会影响页面加载速度
  • 跨浏览器兼容。基本兼容了现在主流的浏览器
  • 链式编程、隐式迭代
  • 对事件、样式、动画支持,大大简化了DOM操作
  • 支持插件扩展开发。有着丰富的第三方的插件,例如:树形菜单、日期控件、轮播图等
  • 免费、开源

学习jQuery:

  1. 本质:就是学习调用这些函数(方法)

  2. 官网地址: https://jquery.com/

  3. 各个版本的下载:https://code.jquery.com/

  4. //版本说明

    • 1x :兼容 IE 678 等低版本浏览器, 官网不再更新

    • 2x :不兼容 IE 678 等低版本浏览器, 官网不再更新

    • 3x :不兼容 IE 678 等低版本浏览器, 是官方主要更新维护的版本

入口函数

**作用:**在编写代码中,在html标签之前,就可以编写scirpt标签中的jquery,并且常规生效。

$(document).ready(function(){
   ...  //  此处是页面DOM加载完成的入口
});       
$(function () {   
    ...  // 此处是页面 DOM 加载完成的入口
 }) ;         

特性-隐式迭代

过程:

给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。

一句话:

遍历内部 DOM 元素(伪数组形式存储)的过程就叫做隐式迭代

Dom和JQuery

区别

获取对象

  1. 用原生 JS 获取来的对象就是 DOM 对象

  2. jQuery 方法获取的元素就是 jQuery 对象。

  3. jQuery 对象本质是: 利用$对DOM 对象包装后产生的对象(伪数组形式存储)。

修改样式

  1. 原生 JS 中: className 会覆盖元素原先里面的类名。
  2. jQuery 里:类操作只是对指定类进行操作,不影响原先的类名。

调用方法

互相转化

方法关键词:

1.利用${}符号

2.利用[]符号

例子:

1.DOM 对象转换为 jQuery 对象:

$('div') 

2.jQuery 对象转换为 DOM 对象(两种方式)

$('div') [index]       //index 是索引号           
$('div') .get(index)    //index 是索引号      

JQuery选择器

基本和层级选择器

image-20220111221813636

image-20220111221820086

筛选选择器

后缀筛选

image-20220111221956326

方法筛选

常用重点: parent() children() find() siblings() eq()

image-20220111222010446

应用排他思想

是什么:想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式。

$(this).css(“color”,”red”);
$(this).siblings(). css(“color”,””);

应用链式编程

**应用例子:**排他思想

$(this).css('color', 'red').sibling().css('color', '');     

JQuery操作样式

修改样式CSS

1.只写属性名; 返回属性值

$(this).css(''color'');

2.修改

$(this).css(''color'', ''red'');

3.修改多组

$(this).css({ "color":"white","font-size":"20px"});

修改类名

1.添加类

$(“div”).addClass(''current'');

2.移除类

$(“div”).removeClass(''current'');

3.切换类

$(“div”).toggleClass(''current'');

JQuery效果

最为常见的:

image-20220111222532120

基础效果

显示效果

1.语法

show([speed,[easing],[fn]])

2.语法说明

(1)参数都可以省略, 无动画直接显示。

(2)@speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)@easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)@fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。

隐藏效果

1.语法

hide([speed,[easing],[fn]])

2.语法参数说明

(1)参数都可以省略, 无动画直接显示。

(2)@speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)@easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)@fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。

切换效果

1.语法

toggle([speed,[easing],[fn]])

2.语法参数说明

(1)参数都可以省略, 无动画直接显示。

(2)@speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。

(3)@easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。

(4)@fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。

建议:平时一般不带参数,直接显示隐藏即可。

滑动效果

下滑效果

slideDown([speed,[easing],[fn]])

上滑效果

slideUp([speed,[easing],[fn]])

切换效果

slideToggle([speed,[easing],[fn]])

事件切换

hover([over,]out)

(1)over:鼠标移到元素上要触发的函数(相当于mouseenter)

(2)out:鼠标移出元素要触发的函数(相当于mouseleave)

(3)如果只写一个函数,则鼠标经过和离开都会触发它

案例-tab栏切换

引出问题

停止动画排队

描述:停止上一个动画

语法:

stop()

例子:tab栏切换

淡入淡出效果

fadeIn()

fadeOut()

fadeToggle()

渐进方式调整到指定的不透明度:

fadeTo([[speed],opacity,[easing],[fn]])

@opacity 透明度必须写,取值 0~1 之间。

@speed:(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。必须写

自定义动画

1 语法:

animate(params,[speed],[easing],[fn])

@params: 想要更改的样式属性,以对象形式传递,必须写。 属性名可以不用带引号, 如果是复合属性则需要采取驼峰命名法 borderLeft。其余参数都可以省略。

JQuery操作属性

内容-语法

1 操作原生标签属性

1.1 语法-获取属性

prop(''属性'')

1.2 语法-修改属性

prop(''属性'', ''属性值'')

2 操作自定义属性

1 语法-获取属性

attr(''属性'')

2 语法-修改属性

attr(''属性'', ''属性值'')

3 数据缓存

3.1 语法-获取数据

data("\name")

3.2 语法-修改数据

data("\name","\value")

案例-购物车全选

思路:

①全选思路:里面3个小的复选框按钮(j-checkbox)选中状态(checked)跟着全选按钮(checkall)走。

②因为checked 是复选框的固有属性,此时我们需要利用prop()方法获取和设置该属性。

③把全选按钮状态赋值给3小复选框就可以了。

④当我们每次点击小的复选框按钮,就来判断:

⑤如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。

⑥:checked 选择器 :checked 查找被选中的表单元素。

 // 1. 全选 全不选功能模块
    // 就是把全选按钮(checkall)的状态赋值给 三个小的按钮(j-checkbox)就可以了
    // 事件可以使用change
    $(".checkall").change(function() {
        // console.log($(this).prop("checked"));
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
        if ($(this).prop("checked")) {
            // 让所有的商品添加 check-cart-item 类名
            $(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(".cart-item").removeClass("check-cart-item");
        }
    });
    // 2. 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
    $(".j-checkbox").change(function() {
        // if(被选中的小的复选框的个数 === 3) {
        //     就要选中全选按钮
        // } else {
        //     不要选中全选按钮
        // }
        // console.log($(".j-checkbox:checked").length);
        // $(".j-checkbox").length 这个是所有的小复选框的个数
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }
        if ($(this).prop("checked")) {
            // 让当前的商品添加 check-cart-item 类名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    });

JQuery操作文本值

语法-例子

	<script>
        // 1. 获取设置元素内容 html()
        console.log($("div").html());
        // $("div").html("123");
        // 2. 获取设置元素文本内容 text()
        console.log($("div").text());
        $("div").text("123");

        // 3. 获取设置表单值 val()
        console.log($("input").val());
        $("input").val("123");
    </script>

案例-增加商品数量

思路:

①核心思路:首先声明一个变量,当我们点击+号(increment),就让这个值++,然后赋值给文本框。

②注意1: 只能增加本商品的数量, 就是当前+号的兄弟文本框(itxt)的值。

③修改表单的值是val() 方法

④注意2: 这个变量初始值应该是这个文本框的值,在这个值的基础上++。要获取表单的值

⑤减号(decrement)思路同理,但是如果文本框的值是1,就不能再减了。

案例-修改商品小计

思路:

①核心思路:每次点击+号或者-号,根据文本框的值 乘以 当前商品的价格 就是 商品的小计

②注意1: 只能增加本商品的小计, 就是当前商品的小计模块(p-sum)

③修改普通元素的内容是text() 方法

④注意2: 当前商品的价格,要把¥符号去掉再相乘 截取字符串 substr(1)

⑤parents(‘选择器’) 可以返回指定祖先元素

⑥最后计算的结果如果想要保留2位小数 通过 toFixed(2) 方法

⑦用户也可以直接修改表单里面的值,同样要计算小计。 用表单change事件

⑧用最新的表单内的值 乘以 单价即可 但是还是当前商品小计

知识点:

  1. 获取父父元素的简便方法
  2. 保留两位小数的方法
 // 1. 全选 全不选功能模块
    // 就是把全选按钮(checkall)的状态赋值给 三个小的按钮(j-checkbox)就可以了
    // 事件可以使用change
    $(".checkall").change(function() {
        // console.log($(this).prop("checked"));
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
        if ($(this).prop("checked")) {
            // 让所有的商品添加 check-cart-item 类名
            $(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(".cart-item").removeClass("check-cart-item");
        }
    });
    // 2. 如果小复选框被选中的个数等于3 就应该把全选按钮选上,否则全选按钮不选。
    $(".j-checkbox").change(function() {
        // if(被选中的小的复选框的个数 === 3) {
        //     就要选中全选按钮
        // } else {
        //     不要选中全选按钮
        // }
        // console.log($(".j-checkbox:checked").length);
        // $(".j-checkbox").length 这个是所有的小复选框的个数
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }
        if ($(this).prop("checked")) {
            // 让当前的商品添加 check-cart-item 类名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    });
    // 3. 增减商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++,然后赋值给文本框。
    $(".increment").click(function() {
        // 得到当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        // console.log(n);
        n++;
        $(this).siblings(".itxt").val(n);
        // 3. 计算小计模块 根据文本框的值 乘以 当前商品的价格  就是 商品的小计
        // 当前商品的价格 p  
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p);
        p = p.substr(1);
        console.log(p);
        var price = (p * n).toFixed(2);
        // 小计模块 
        // toFixed(2) 可以让我们保留2位小数
        $(this).parents(".p-num").siblings(".p-sum").html("¥" + price);
        getSum();
    });
    $(".decrement").click(function() {
        // 得到当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        if (n == 1) {
            return false;
        }
        // console.log(n);
        n--;
        $(this).siblings(".itxt").val(n);
        // var p = $(this).parent().parent().siblings(".p-price").html();
        // parents(".p-num") 返回指定的祖先元素
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p);
        p = p.substr(1);
        console.log(p);
        // 小计模块 
        $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
        getSum();
    });
    //  4. 用户修改文本框的值 计算 小计模块  
    $(".itxt").change(function() {
        // 先得到文本框的里面的值 乘以 当前商品的单价 
        var n = $(this).val();
        // 当前商品的单价
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p);
        p = p.substr(1);
        $(this).parents(".p-num").siblings(".p-sum").html("¥" + (p * n).toFixed(2));
        getSum();
    });
    // 5. 计算总计和总额模块
    getSum();

    function getSum() {
        var count = 0; // 计算总件数 
        var money = 0; // 计算总价钱
        $(".itxt").each(function(i, ele) {
            count += parseInt($(ele).val());
        });
        $(".amount-sum em").text(count);
        $(".p-sum").each(function(i, ele) {
            money += parseFloat($(ele).text().substr(1));
        });
        $(".price-sum em").text("¥" + money.toFixed(2));
    }

JQuery遍历

each方法

$(function() {
            // $("div").css("color", "red");
            // 如果针对于同一类元素做不同操作,需要用到遍历元素(类似for,但是比for强大)
            var sum = 0;
            // 1. each() 方法遍历元素 
            var arr = ["red", "green", "blue"];
            $("div").each(function(i, domEle) {
                // 回调函数第一个参数一定是索引号  可以自己指定索引号号名称
                // console.log(index);
                // console.log(i);
                // 回调函数第二个参数一定是 dom元素对象 也是自己命名
                // console.log(domEle);
                // domEle.css("color"); dom对象没有css方法
                $(domEle).css("color", arr[i]);
                sum += parseInt($(domEle).text());
            })
            console.log(sum);

$.each方法

// 2. $.each() 方法遍历元素 主要用于遍历数据,处理数据
            // $.each($("div"), function(i, ele) {
            //     console.log(i);
            //     console.log(ele);

            // });
            // $.each(arr, function(i, ele) {
            //     console.log(i);
            //     console.log(ele);


            // })
            $.each({
                name: "andy",
                age:d 18
            }, function(i, ele) {
                console.log(i); // 输出的是 name age 属性名
                console.log(ele); // 输出的是 andy  18 属性值
            })

JQuery操作元素

$(function() {
            // 1. 创建元素
            var li = $("<li>我是后来创建的li</li>");
            // 2. 添加元素

            // (1) 内部添加
            // $("ul").append(li);  内部添加并且放到内容的最后面 
            $("ul").prepend(li); // 内部添加并且放到内容的最前面

            // (2) 外部添加
            var div = $("<div>我是后妈生的</div>");
            // $(".test").after(div);
            $(".test").before(div);
            // 3. 删除元素
            // $("ul").remove(); 可以删除匹配的元素 自杀
            // $("ul").empty(); // 可以删除匹配的元素里面的子节点 孩子
            $("ul").html(""); // 可以删除匹配的元素里面的子节点 孩子

        })

案例-清理购物车

// 6. 删除商品模块
    // (1) 商品后面的删除按钮
    $(".p-action a").click(function() {
        // 删除的是当前的商品 
        $(this).parents(".cart-item").remove();
        getSum();
    });
    // (2) 删除选中的商品
    $(".remove-batch").click(function() {
        // 删除的是小的复选框选中的商品
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSum();
    });
    // (3) 清空购物车 删除全部商品
    $(".clear-all").click(function() {
        $(".cart-item").remove();
        getSum();
    })

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

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

相关文章

Springboot 使用redis检测浏览量,评论量,点赞量的变化并完成与mysql的交互(有具体实现,有具体需求)

目录 依赖 准备实体类与业务类 开始正题 实现一览 流程一览 具体实现 1 初始化 2 写浏览量增加的方法 3 在切面处检测浏览器变化 4 新增文章时将新的数据写入redis 5 删除文章时将数据从Redis中删除 6 书写将数据写入mysql数据库的方法 7 销毁的时候将数据写入my…

一文搞懂百万富翁问题

百万富翁问题1. 解决方案2. 协议描述3. 协议说明4. 协议举例两个百万富翁Alice和Bob想知道他们两个谁更富有&#xff0c;但他们都不想让对方及其他第三方知道自己财富的任何信息&#xff0c;这是由中国计算机科学家、2000年图灵奖获得者姚启智教授于1982年在论文《Protocols fo…

新手小白做跨境电商有哪些注意的地方?

近两年&#xff0c;受疫情刺激&#xff0c;线上电商出现前所未有的高速增长&#xff0c;中国品牌纷纷出海&#xff0c;跨境电商腾飞。此外&#xff0c;国内电商市场发展趋于平淡&#xff0c;市场需求不断萎缩&#xff0c;也让越来越多的大卖家和平台盯上了这块大蛋糕。不仅中小…

300左右半入耳蓝牙耳机推荐:南卡、漫步者、JBL蓝牙耳机谁值得入手?

现在的年轻人&#xff0c;出门都会随身携带的一副蓝牙耳机&#xff0c;所以很多品牌商加入其中&#xff0c;导致大多数人选购难度变大&#xff0c;很多人总是不知道哪个不知道品牌蓝牙耳机最好&#xff0c;半入耳式蓝牙耳机相比入耳式蓝牙耳机有着天然的舒适性&#xff0c;因而…

如何利用MOS管设计一个LED亮度可调电路

首先大家可以看下下面的MOS管亮度可调的演示视频 如何利用MOS管设计一个LED亮度可调电路这个电路大致电路图如下 MOS管的栅极放了一个电容&#xff0c;当按按键1的时候&#xff0c;电源通过R1给电容充电&#xff0c;&#xff0c;MOS管栅极的电压慢慢增大&#xff0c;流过MOS管的…

计算机毕业设计HTML+CSS+JavaScript——基于HTML花店购物网站项目的设计与实现

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

Essential singularity

In complex analysis, an essential singularity of a function is a “severe” singularity near which the function exhibits odd behavior. The category essential singularity is a “left-over” or default group of isolated singularities that are especially unm…

跳转指令 —— B、BL

跳转指令可以跳转到标号的下一条指令&#xff0c;本质就是修改了PC寄存器的值。&#xff08;标号并非指令&#xff0c;只是用来定位&#xff0c;相当于记录了当前位置的下一条指令的地址&#xff09; 这里的MAIN就是一个标号 MAIN: MOV R1, #1 这里的FUNC就是一个标…

实验3 路由器基本配置及路由配置

实验3 路由器基本配置及路由配置一、实验目的二、实验要求三、实验步骤&#xff0c;数据记录及处理四&#xff0e;实验总结一、实验目的 1、路由器几种模式。 2、基本的配置命令。 3、路由器各接口的配置方法。 4、会查看检测接口状态。 二、实验要求 写出自己学习使用了哪些…

Redis框架(十五):大众点评项目 共同关注方案实现?双指针筛选DB数据:Redis取交集

大众点评项目 好友关注 共同关注需求&#xff1a;好友关注 共同关注业务逻辑展示点击关注功能实现判断当前用户是否关注了此博主共同好友列表查询业务逻辑实现双指针筛选DB数据Redis取交集总结SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节…

字节一面:select......for update会锁表还是锁行?

select查询语句是不会加锁的&#xff0c;但是select .......for update除了有查询的作用外&#xff0c;还会加锁呢&#xff0c;而且它是悲观锁。 那么它加的是行锁还是表锁&#xff0c;这就要看是不是用了索引/主键。 没用索引/主键的话就是表锁&#xff0c;否则就是是行锁。…

sklearn基础篇(十)-- 非负矩阵分解与t-SNE

1 非负矩阵分解(NFM) NMF(Non-negative matrix factorization)&#xff0c;即对于任意给定的一个非负矩阵V\pmb{V}VVV&#xff0c;其能够寻找到一个非负矩阵W\pmb{W}WWW和一个非负矩阵H\pmb{H}HHH&#xff0c;满足条件VW∗H\pmb{VW*H}VW∗HVW∗HVW∗H,从而将一个非负的矩阵分解…

物联网架构实例—解决Linux(Ubuntu)服务器最大TCP连接数限制

1.前言&#xff1a; 在对物联网网关进行压测的时候&#xff0c;发现在腾讯云部署网关程序&#xff0c;设备接入数量只能达到4000多个长连接&#xff0c;之后就再也无法接入终端了。 之前在阿里云部署的时候明明可以到达2万左右&#xff0c;而且腾讯云的这个服务器比阿里云的硬…

蓝桥杯嵌入式综合实验真题-联网电压测量系统设计与实现

目录 实验要求&#xff1a; 实验思路&#xff1a; 核心代码&#xff1a; &#xff08;1&#xff09;变量声明 &#xff08;2&#xff09;函数声明 &#xff08;3&#xff09;main主函数 &#xff08;4&#xff09;按键&#xff08;长按/短按&#xff09; &#xff08;5&…

K8s——Service、代理模式演示(二)

Service 演示 SVC 创建svc-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: myapp-deploynamespace: default spec:replicas: 3selector:matchLabels:app: myapprelease: stabeltemplate:metadata:labels:app: myapprelease: stabelenv: testspec: c…

学习UI设计有哪些figma插件

自2016年推出以来&#xff0c;Figma已发展成为市场领先者UI设计工具之一。 因为它不仅简单易用&#xff0c;功能优秀&#xff0c;而且基于云服务&#xff0c;可以实时编辑&#xff0c;节省大量手动下载或复制文件的时间。不仅如此&#xff0c;Figma还提供合作功能&#xff0c;…

一文读懂PFMEA(过程失效模式及后果分析)

PFMEA是过程失效模式及后果分析(Process Failure Mode andEffects Analysis)的英文简称&#xff0c;是由负责制造/装配的工程师/小组主要采用的一种分析技术&#xff0c;用以最大限度地保证各种潜在的失效模式及其相关的起因/机理已得到充分的考虑和论述。 名词解释&#xff1a…

springboot介绍

笔记来源于 动力节点springboot Javaconfig xml方式 在创建模块时&#xff0c;idea2022新版选择internal即可&#xff1a; pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xs…

圆顶光源特点及应用——塑料包装袋、PCB板检测

照明系统是机器视觉系统较为关键的部分之一&#xff0c;机器视觉光源直接影响到图像的质量&#xff0c;进而影响到系统的性能。其重要性无论如何强调都是不过分的。好的打光设计能够使我们得到一幅好的图象&#xff0c;从而改善整个整个系统的分辨率&#xff0c;简化软件的运算…

Java JNA 调用DLL(动态连接库) 回调函数

首先准备好动态链接库dll 参考连接 visual studio 2017 创建dll文件并使用https://blog.csdn.net/miss_na/article/details/113524280 Visual Studio 2017 动态链接库(.dll)生成与使用的简明教程https://blog.csdn.net/Hide_on_Stream/article/details/109172054 jni之jni与…