JQ-3 jQuery事件处理(click和on的区别、事件冒泡、事件对象、事件委托、小案例); jQuery动画(常见动画函数、动画队列、小案例)

news2024/10/7 20:29:06

目录

  • 1_ jQuery事件处理
    • 1.1_认识事件(Event)
    • 1.2_click和on的区别
    • 1.3_ jQuery的事件冒泡
    • 1.4_jQuery的事件对象( Event Object)
    • 1.5_ jQuery的事件委托(event delegation)
    • 1.6_ jQuery常见的事件
    • 1.7_小案例
  • 2_ jQuery 动画
    • 2.1_介绍
    • 2.2_jQuery常见动画函数
    • 2.3_ jQuery元素中的动画队列
    • 2.4_小案例

1_ jQuery事件处理

1.1_认识事件(Event)

Web页面经常需要和用户之间进行交互,而交互的过程中可能想要捕捉这个交互的过程:

  • 比如用户点击了某个按钮、用户在输入框里面输入了某个文本、用户鼠标经过了某个位置;
  • 浏览器需要搭建一条JavaScript代码和事件之间的桥梁;
  • 当某个事件发生时,让JavaScript执行某个函数,所以需要针对事件编写处理程序(handler);

原生事件监听方法:

  • 事件监听方式一:在script中直接监听(很少使用)。
  • 事件监听方式二:DOM属性,通过元素的on来监听事件。
  • 事件监听方式三:通过EventTarget中的addEventListener来监听。

jQuery事件监听方法:

  • 事件监听方式一:直接调用jQuery对象中的事件处理函数来监听,例如:click,mouseenter…。
  • 事件监听方式二:调用jQuery对象中的on函数来监听,使用off函数来取消监听。
  <ul id="list" class="panel">
    <li class="li-1">li-1</li>
    <li class="li-2">li-2</li>
    <li class="li-3">li-3</li>
    <li class="li-4">li-4</li>
    <li class="li-5">li-5</li>
  </ul>

  <button class="cancel">取消事件的监听</button>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    // 1.监听文档完全解析完成
    $(function() { 
      // 监听事件
      // 1.使用on来监听事件
      $('ul').on('click', function() {
        console.log('click1')
      })
      // 2.使用click来监听事件
      $('ul').click(function() {
        console.log('click2')
      })
      // 3.使用mouseenter来监听事件
      $('ul').mouseenter(function() {
        console.log('mouseenter')
      })
      // 取消监听事件off
      $('.cancel').click(function() {
        // $('ul').off() // 取消ul元素上所有的事件
        // $('ul').off('mouseenter')
        $('ul').off('click')
      })
      // 使用程序-自动触发事件
      $('ul').trigger('click')  // 模拟用户点击了ul元素
      $('ul').trigger('mouseenter')

    })
  </script>

1.2_click和on的区别

click是on的简写。它们重复监听,不会出现覆盖情况,都支持事件委托,底层用的是addEventListener。
如果 on 没有使用 selector 的话,那么和使用click是一样的。

on 函数可以接受一个 selector 参数,用于筛选 可触发事件 的后代元素。
on 函数支持给事件添加命名空间。

  <ul id="list" class="panel">
    <li class="li-1">li-1</li>
    <li class="li-2">li-2</li>
    <li class="li-3">li-3</li>
    <li class="li-4">li-4</li>
    <li class="li-5">li-5</li>
  </ul>

  <button class="cancel">取消事件的监听</button>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    // 1.监听文档完全解析完成
    $(function() {
     
      // 监听事件
      // 1.使用on来监听事件 ( 支持给事件添加命名空间: xixi ;并且支持一个selector选择器: .li-4 )
      $('ul').on('click.xixi','.li-4', function() {
        console.log('click1')
      })

      // 2.使用click来监听事件
      $('ul').click(function() {
        console.log('click2')
      })

      // 取消监听事件
      $('.cancel').click(function() {
        $('ul').off('click.xixi')
      })
    })
  </script>

补充:click和on的this都是指向原生的DOM Element

    $(function() {

      $('ul').click(function() {
        console.log("%O", this) // DOM Element -> UL
      }) 

      $('ul').on('click', function() {
        console.log(this) // DOM Element -> UL
      })

      $('ul li').click(function() {
        console.log(this) // DOM Element -> UL
      })

      // 底层实现的原理
      var lisEl = $('ul li').get() // [li, li, li]
      for(var liEL of lisEl ){
        liEL.addEventListener('click', function() {
          console.log(this)
        })
      }

      $('ul li').click(function() {
        console.log( $(this) ) // DOM Element 转成 jQuery 对象,故this指向JQ对象
      })
      
      $('ul li').click(() => {
        console.log(this) //立即执行函数的this不绑定自身的原生对象,往上层作用域找,是document对象
      })

    })

1.3_ jQuery的事件冒泡

默认情况下事件是从最内层(如:span -> body)向外依次传递的顺序,这个顺序称之为事件冒泡(Event Bubble);

另外一种监听事件流的方式就是从外层到内层(如:body -> span),这种称之为事件捕获(Event Capture);

为什么会产生两种不同的处理流呢?

  • 这是因为早期在浏览器开发时,不管是IE还是Netscape公司都发现了这个问题;
  • 但是他们采用了完全相反的事件流来对事件进行了传递;
  • IE<9仅采用了事件冒泡的方式,Netscape采用了事件捕获的方式;
  • IE9+和现在所有主流浏览器都已支持这两种方式。

jQuery为了更好的兼容IE浏览器,底层并没有实现事件捕获。


1.4_jQuery的事件对象( Event Object)

jQuery事件系统的规范是根据W3C的标准来制定jQuery事件对象。

原始事件对象的大多数属性都被复制到新的jQuery事件对象上。如,以下原生的事件属性被复制到jQuery事件对象中:
altKey, clientX, clientY, currentTarget, data, detail, key, keyCode, offsetX, offsetY, originalTarget, pageX, pageY, relatedTarget, screenX, screenY, target, …

jQuery事件对象通用的属性(以下属性已实现跨浏览器的兼容): target、relatedTarget、pageX、pageY、which、metaKey

  <div class="box">
    div
    <span class="content">span</span>
  </div>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    $(function() {
      // 1.获取原生的事件对象
      var divEl = document.querySelector('.box')
      divEl.addEventListener('click', function(event) {
        console.log(event)
      })
      // 2.获取jQuery的事件对象
      $('.box').click(function($event) {
        console.log($event) // 是jQuery的事件对象
        console.log($event.originalEvent) // 拿到原生的事件对象
      })
    })
  </script>

jQuery事件对象常用的方法:

  • preventDefault() : 取消事件的默认行为(例如,a标签、表单事件等)。
  • stopPropagation() : 阻止事件的进一步传递(例如,事件冒泡)。

要访问其它事件的属性,可以使用 event.originalEvent 获取原生对象

  <div class="box">
    div
    <span class="content">span</span>
  </div>

  <a href="https://www.jd.com">京东商城</a>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    // 1.监听文档完全解析完成
    $(function() {

      $('a').click(function($event) {
        $event.preventDefault()  // 阻止a元素的默认行为
        console.log('点击a元素  但阻止a元素的默认行为')
      })


      $('.content').click(function($event) {
        $event.stopPropagation() // 阻止事件的冒泡
        console.log('点击span 但阻止事件的冒泡')
      })
      
      $('.box').on('click', function() {
        console.log('点击了粉色盒子')
      })
      $('body').on('click', function() {
        console.log('点击了body')
      })

    })

1.5_ jQuery的事件委托(event delegation)

事件冒泡在某种情况下可以帮助实现强大的事件处理模式 – 事件委托模式(也是一种设计模式)

JQuery事件委托模式?

  • 当子元素被点击时,父元素可以通过冒泡监听到子元素的点击;
  • 并且可以通过event.target获取到当前监听事件的元素(event.currentTarget获取到的是处理事件的元素);

案例:一个ul中存放多个li,使用事件委托的模式来监听li中子元素的点击事件。

  <ul id="list" class="panel">
    <li class="li-1">li-1
      <p class="p1">我是p元素</p>
    </li>
    <li class="li-2">li-2
      <p  class="p2">我是p元素</p>
    </li>
    <li class="li-3">li-3
      <p  class="p3">我是p元素</p>
    </li>
    <li class="li-4">li-4
      <p  class="p4">我是p元素</p>
    </li>
    <li class="li-5">li-5
      <p  class="p5">我是p元素</p>
    </li>
  </ul>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    // 1.监听文档完全解析完成
    $(function() {

      // 事件的委托
      $('ul').on('click', function(event) {
        console.log(event.target)  // 点击哪个,打印哪个元素及其后代元素。
      })

      // 仅仅监听li中元素的点击事件( 筛选出 可触发事件的 后代元素 )
      $('ul').on('click', 'li p' , function(event) {
        console.log(event.target)  // 只打印p元素,点击其他的元素没反应【<p class="p1">我是p元素</p>】
      })

    })
  </script>

1.6_ jQuery常见的事件

鼠标事件(Mouse Events)

  • .click() 、.dblclick()、.hover()、.mousedown() 、.mouseup()
  • .mouseenter()、.mouseleave()、.mousemove()
  • .mouseover()、.mouseout() 、.contextmenu()、.toggle()

mouseenter()和mouseleave()

  • 不支持冒泡
  • 进入子元素依然属于在该元素内,没有任何反应

mouseover()和mouseout()

  • 支持冒泡
  • 进入元素的子元素时
    • 先调用父元素的mouseout
    • 再调用子元素的mouseover
    • 因为支持冒泡,所以会将mouseover传递到父元素中;

键盘事件(Keyboard Events): .keydown() 、.keypress()、.keyup()

文档事件(Document Loading Events): load、ready()、.unload

表单事件(Form Events): .blur() 、.focus()、.change()、.submit()、.select()

浏览器事件(Browser Events): .resize()、.scroll()

<input type="text">

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    $(function() {

      // on('hover', func)

      // 1.hover 底层使用的是: mouseenter or mouseleaver
      // hover()中的两个函数,前者是mouseenter(),后者是mouseleaver()
      $('ul').hover(function() {
        console.log('鼠标悬浮在ul')
      }, function() {
        console.log('鼠标离开在ul')
      })

      // 2.监听浏览器resize事件 ( 可以优化进行throttle 节流 ) 
      // 浏览器窗口大小被改动时,被监听到
      $(window).resize(function() {
        console.log('resize  changing')
      })


      // // 3.表单事件
      // 输入框聚焦
      $('input').focus(function() {
        console.log('input focus事件')
      })
      // 输入框失焦
      $('input').blur(function() {
        console.log('input blur事件')
      })

      // // input ( 注意可以进行debounce 防抖操作 )
      $('input').on('input', function() {
       console.log( $('input').val() )
       console.log( $(this).val() )
      })

    })
  </script>

1.7_小案例

实现选项卡的切换

  <style>
    .nav{
      background-color: #43240c;
      color: white;
    }

    .nav-bar{
      display: flex;
      width: 1200px;
      height: 46px;
      line-height: 46px;
      margin: 0 auto;
    }

    .item{
      width: 160px;
      text-align: center;
      cursor: pointer;
    }
    .item.active{
      background-color: #fee44e;
      color: #43200c;
    }
  </style>
</head>
<body>
  
  <div class="nav">
    <div class="nav-bar" >
      <div class="item active">首页</div>
      <div class="item">9块9包邮</div>
      <div class="item">超值大额券</div>
      <div class="item">降温急救穿搭</div>
    </div>
  </div>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    // 1.监听文档完全解析完成
    $(function() {
      //【解释】 监听 类名为.item的点击事件,若点击某个.item,则给其类名添加active,其余兄弟元素移除类名active
      $('.item').on('click', function() {
        $(this).addClass('active').siblings().removeClass('active')
      })

      console.log($('.item:eq(1)').siblings())
    })
  </script>
</body>

2_ jQuery 动画

2.1_介绍

.animate(): 执行一组 CSS属性的自定义动画,允许支持数字的CSS属性上创建动画。

  • .animate( properties [, duration ] [, easing ] [, complete ] )

  • .animate( properties, options )

    • propertys参数的支持:

      • 数值:number 、string

      • 关键字showhidetoggle

      • 相对值:+= 、 -=

      • 支持 em 、% 单位(可能会进行单位转换)。

自定义修改宽高度动画

  • height :100% -> 0
  • width: 100% -> 0
  • opacity: 1 - >0

案例:利用.animate()函数完成动画的显示、隐藏、切换

  <style>
    body{
      height: 200px;
    }
    .box{
      width: 200px;
      height: 100px;
      background-color: pink;
    }
  </style>

<body>
 
  <button class="hide">隐藏</button>
  <button class="show">显示</button>
  <button class="toggle">切换</button>
  <div class="box">box</div>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    $(function() {
      //隐藏动画
      $('.hide').click(function() {
        $('.box').animate({
          opacity: 0,
          height:0,
          width: 0
        }, 'slow', function() {   // number | 关键之: slow->600 fast->200
          console.log('动画执行完成')
        })
      })
      //显示动画
      $('.show').click(function() {
        $('.box').animate({
          opacity: 1,
          height: 100,
          width: 200
        }, 'fast', function() {
          console.log('动画执行完成')
        })
      })
      //利用toggle关键字,切换动画
      $('.toggle').click(function() {
        // 关键词toggle有切换的作用
        $('.box').animate({
          opacity: 'toggle',
          height: 'toggle',
          width: 'toggle'
        }, 400, function() {
          console.log('动画执行完成')
        })
      })
    })
  </script>

2.2_jQuery常见动画函数

显示和隐藏匹配的元素

  • .hide() 、.hide( [duration ] [, complete ] )、.hide( options ) - 隐藏元素
  • .show() 、.show( [duration ] [, complete ] )、.show( options ) - 显示元素
  • .toggle() 、.toggle( [duration ] [, complete ] )、.toggle( options ) -显示或者隐藏元素(来回切换)

利用动画函数,优化刚才的案例

 $(function() {

      $('.hide').click(function() {
        $('.box').hide('slow', function() {
          console.log('动画执行完成')
        })
      })

      $('.show').click(function() {
        $('.box').show('fast', function() {
          console.log('动画执行完成')
        })
      })
     
        $('.box').toggle({
          duration: 3000,
          complete: function() {
            console.log('动画执行完成')
          }
        })
      })
    })

淡入淡出

  • .fadeIn()、.fadeIn( [duration ] [, complete ] )、.fadeIn( options ) - 淡入动画
  • .fadeOut()、.fadeOut( [duration ] [, complete ] )、.fadeOut( options ) -淡出动画
  • .fadeToggle()、.fadeToggle( [duration ] [, complete ] )、.fadeToggle( options ) - 淡入淡出的切换
  • .fadeTo( duration, opacity [, complete ] ) - 渐变到

2.3_ jQuery元素中的动画队列

jQuery匹配元素中的animate和delay动画是通过一个动画队列(queue)来维护的。例如执行下面的动画都会添加到动画队列中:

  • .hide() 、 .show()
  • .fadeIn() 、.fadeOut()
  • .animate()、delay()

.queue():查看当前选中元素中的动画队列。

.stop( [clearQueue ] [, jumpToEnd ] ):停止匹配元素上当前正在运行的动画。

  • clearQueue :一个布尔值,指示是否也删除排队中的动画。默认为false
  • jumpToEnd :一个布尔值,指示是否立即完成当前动画。默认为false

demo:

  <style>
    .box{
      position: relative;
      width: 100px;
      height: 100px;
      background-color: pink;
    }
  </style>

<body>
  <button class="start">开始动画</button>  
  <button class="stop">停止动画</button>  
  <button class="queue">查看动画队列</button> 
  <div class="box">box</div>

  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    // 监听文档完全解析完成
    $(function() {
      var $box = $('.box')
      $('.start').click(function() {
        // 竖直向下走100px
        $box.animate({
          top: 100
        }, 2000)
        // 水平向右走100px
        $box.animate({
          left: 100
        }, 2000)
        // 竖直向上走100px
        $box.animate({
          top: 0
        },2000)
        // 水平向左走100px
        $box.animate({
          left: 0
        }, 2000)
      })

      $('.queue').click(function() {
        console.log( $box.queue() )  // 查看动画队列 。一旦动画队列启动运行,执行这个函数只能查看剩余的动画
      })

      $('.stop').click(function() {
        // $box.stop()  // 停止 fx 动画队列( 停止当前执行的动画,还会继续执行动画队列中其它的动画 )
        // stop(false, false) //默认值。不停止
        // $box.stop(true) // 停止所有的动画(包括当前的动画), 清空了动画队列,
         $box.stop(true, true) // 清空了动画队列, 立即执行完当前的动画
      })
    })
  </script>

2.4_小案例

点击关闭按钮,做关闭侧边栏动画.、。

监听关闭按钮,检测到点击事件,先进行关闭最下方图片的动画,然后图片大盒子的宽度逐步归零,最后图片消失

在这里插入图片描述

  <style>
    .box{
      position: fixed;
      bottom: 0;
      right: 0;
    }
    img{
      vertical-align: bottom;
    }

    .close{
      position: absolute;
      top: 0;
      right: 0;
      width: 25px;
      height: 25px;
      cursor: pointer;
      /* border: 1px solid red; */
    }
  </style>

<body>
  
  <div class="box">
    <span class="close"></span>
    <div class="top">
      <img src="./images/top.png" alt="">
    </div>
    <div class="bottom">
      <img src="./images/bottom.png" alt="">
    </div>
  </div>
  <script src="../libs/jquery-3.6.0.js"></script>
  <script>
    // 1.监听文档完全解析完成
    $(function() {
      // 【解释】监听关闭按钮,检测到点击事件,先进行关闭最下方图片的动画,然后图片大盒子的宽度逐步归零,最后图片消失
      $('.close').click(function() {
        $('.bottom').animate({height: 0}, 600, function() {
          $('.box').animate({width: 0}, 600, function() {
            $('.box').css('display', 'none')
          })
        })
      })

    })
  </script>
</body>

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

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

相关文章

【力扣每日一题】2023.7.23 接雨水

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 接雨水是力扣里非常经典的一道单调栈的题目&#xff0c;使用单调栈的做法就是从左到右将高度依次入栈&#xff0c;保持栈内从栈顶…

《零基础入门学习Python》第060讲:论一只爬虫的自我修养8:正则表达式4

有了前面几节课的准备&#xff0c;我们这一次终于可以真刀真枪的干一场大的了&#xff0c;但是呢&#xff0c;在进行实战之前&#xff0c;我们还要讲讲正则表达式的实用方法和扩展语法&#xff0c;然后再来实战&#xff0c;大家多把持一会啊。 我们先来翻一下文档&#xff1a;…

【iOS安全】iOS 14.3越狱教程

iOS 14.3越狱教程 通过MacBook越狱iPhone 8 方案&#xff1a;AltStore unc0ver 实验环境 手机&#xff1a;iPhone 8 OS版本&#xff1a;iOS 14.3 型号号码&#xff1a;A1863 PC型号&#xff1a;MacBook 实验步骤 Mac安装AltServer https://altstore.io/ 解压后启动 …

【ES】---ES的聚合(aggregations)

目录 一、前言1、聚合分类2、聚合的实现方式二、RestAPI--bucket聚合案例11、按照类型分bucket2、按照(String)时间分bucket三、RestAPI-- metric聚合案例11、metric指标统计四、RestAPI-- pipeline聚合案例1一、前言 聚合是对文档数据的统计、分析、计算。 注意:参与聚合的字…

Clion开发STM32之W5500系列(NTP服务封装)

概述 在w5500基础库中进行封装&#xff0c;获取服务端的时间&#xff0c;来校准本地时间。本次使用的方案是通过ntp获取时间定时器更新保证时间准确。 NTP封装 头文件 /*******************************************************************************Copyright (c) [sc…

【动态规划part03】| 343.整数拆分、96.不同的二叉搜索树

目录 &#x1f388;LeetCode343.整数拆分 &#x1f388; LeetCode96.不同的二叉搜索树 &#x1f388;LeetCode343.整数拆分 链接&#xff1a;343.整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些…

S32K1xx SDK(版本:S32_SDK_S32K1xx_RTM_4.0.3 )详细介绍

前言 在学习一款MCU之前&#xff0c;一般我的习惯是先下载官方提供的SDK包进行学习。然后学习了解SDK提供的资源、框架、以及各目录结构文件作用等&#xff0c;下面边学边做笔记记录。 S32K1系列SDK我们可以到下面的NXP官网去获取&#xff1a; https://www.nxp.com.cn/design…

数据库备份还原-mysqldump、mydumper、xtrabackup、压缩

数据库备份&#xff0c;数据库为school&#xff0c;素材如下 一、创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARC…

Windows bat 查找文件被哪个进程占用,并终止该进程

一、背景 我有个批处理脚本如下&#xff1a; echo off chcp 936 & cls cd /D F:\Chen\python3\ExciseC set fdate%date:~0,4%%date:~5,2%%date:~8,2% python main.py >> crawl_record_%fdate%.log 2>&1 for /F %%f in (dir crawl_record_*.log /B ^| find /…

关于Swift中闭包和OC中block对局部变量基本数据类型值的捕获

翻了很多文章&#xff0c;发现关于Swift闭包关于上下文变量捕获这块&#xff0c;都没有说的很详细&#xff0c;或者Swift2这样的老版本已经不适用了&#xff0c;问了GPT也是和自己实验的结果不一样&#xff0c;记录下来。 一&#xff1a;OC的block 首先&#xff0c;回顾一下O…

varnish入门

b站视频 官网 docker安装varnish 某位博客园的varnish系列 varnish04-varnish如何使用VCL 3varnish的原理 varnish是什么 varnish的安装 VCL基础 Varnish Configuration Language (VCL)是一种特定于领域的语言&#xff0c;可以用于描述Varnish Cache服务如何处理请求和缓存…

ONE-PEACE论文解读

文章目录 1. 摘要2. 引言3. 算法3.1 结构模态自适应器3.2 模态融合编码器3.3 任务 4. 实验4.1 视觉任务4.2 音频任务4.3 视觉语言任务4.4 消融实验4.5 zero-shot检索 5. 结论 论文&#xff1a; 《ONE-PEACE: EXPLORING ONE GENERAL REPRESENTATION MODEL TOWARD UNLIMITED MOD…

Mysql最左匹配原则和索引下堆

前言&#xff1a; 最左匹配的基础是联合索引 联合索引 联合索引也称为符合索引&#xff0c;适用于多条件查询。 简单说&#xff0c;它是按多个列建立起来的索引&#xff0c;此外联合索引也是有顺序的。 如下图&#xff0c;以A列和B列建立复合索引&#xff0c;某一层节点&…

学习路之PHP--计算2个坐标点之间距离、时间比较

一、计算2个坐标点之间距离 /** * 根据起点坐标和终点坐标测距离 * param [array] $from [起点坐标(经纬度),例如:array(118.012951,36.810024)] * param [array] $to [终点坐标(经纬度)] * param [bool] $km 是否以公里为单位 false:米 true:公里(千米) …

matlab pcnormals()函数的功能 详解

官方解释&#xff1a; pcnormals - Estimate normals for point cloud This MATLAB function returns a matrix that stores a normal for each point in the input ptCloud. normals pcnormals(ptCloud) normals pcnormals(ptCloud,k) 输入参数 ptClo…

捷米特PROFINET总线协议网关介绍

关于PROFINET PROFINET由PROFIBUS国际组织&#xff08;PROFIBUS International&#xff0c;PI&#xff09;推出&#xff0c;是新一代基于工业以太网技术的自动化总线标准。 PROFINET为自动化通信领域提供了一个完整的网络解决方案&#xff0c;囊括了诸如实时以太网、运动控制…

详解 Linux 常用命令

目录 简单介绍 Linux 左侧信息栏 命令 ls ll cd pwd ctrl l touch cat man echo vim vimtutor mkdir rm cp mv grep ps 面试题: 简单介绍 当我们说"Linux"时&#xff0c;通常指的是一种开源的计算机操作系统。Linux 是一个基于 UNIX 操作系…

24.实现线性拟合和相关系数(matlab程序)

1.简述 1. 基本语法 1.1 corr函数基本语法 语法 说明 rho corr(X) 返回输入矩阵X中每对列之间的两两线性相关系数矩阵。 rho corr(X, Y) 返回输入矩阵X和Y中每对列之间的两两相关系数矩阵。 [rho, pval] corr(X, Y) 返回pval&#xff0c;一个p值矩阵&#xff0c…

SpringBoot静态资源访问及参数处理

静态资源访问&#xff1a; 资源访问&#xff1a; 1&#xff1a;Spring Boot 支持静态和模板化的欢迎页面。它首先在配置的静态内容位置中查找index.html文件。如果未找到&#xff0c;则查找index相关模板。如果找到任一&#xff0c;它将自动用作应用程序的欢迎页面。 2&…

【单片机】MSP430F149单片机,晨启,音乐播放器,蜂鸣器音乐

四、音乐播放器 任务要求&#xff1a; 设计制作一个简易音乐播放器&#xff08;通过手柄板上的蜂鸣器发声&#xff0c;播放2到4首音 乐&#xff09;&#xff0c;同时LED模块闪烁&#xff0c;给人视、听觉美的感受。 评分细则&#xff1a; 按下播放按键P15开始播放音乐&#x…