CSS3设计动画样式

news2024/11/26 22:28:57

CSS3动画包括过渡动画和关键帧动画,它们主要通过改变CSS属性值来模拟实现。我将详细介绍Transform、Transitions和Animations 3大功能模块,其中Transform实现对网页对象的变形操作,Transitions实现CSS属性过渡变化,Animations实现CSS样式分步式演示效果。

1、CSS3变形

2012年9月,W3C发布CSS3变形工作草案。这个草案包括CSS3 2D变形和CSS3 3D变形。CSS 2D Transform获得各主流浏览器的支持,CSS 3D Transform支持程度不是很完善。本节重点讲解2D变形,有关3D变形可以参考我的其它帖子。

1.1、设置原点

CSS变形的原点默认为对象的中心点(50% 50%),使用transform-origin属性可以重新设置新的变形原点。语法格式如下所示:

    transform-origin:[ <percentage> | <length> | left | center① | right ] [ <percentage> | <length> | top | center② | bottom ]?

取值简单说明如下:

  • <percentage>:用百分比指定坐标值,可以为负值。
  • <length>:用长度值指定坐标值,可以为负值。
  • left:指定原点的横坐标为left。
  • center①:指定原点的横坐标为center。
  • right:指定原点的横坐标为right。
  • top:指定原点的纵坐标为top。
  • center②:指定原点的纵坐标为center。
  • bottom:指定原点的纵坐标为bottom。

【示例】通过重置变形原点,可以设计不同的变形效果。以图像的右上角为原点逆时针旋转图像45度:

    <style type="text/css">
    img {                                    /* 固定两幅图像相同大小和相同显示位置 */
        position: absolute;
        left: 20px;
        top: 10px;
        width: 170px;
        width: 250px;
    }
    img.bg {                                 /* 设置第1幅图像作为参考 */
        opacity: 0.3;
        border: dashed 1px red;
    }
    img.change {                             /* 变形第2幅图像 */
        border: solid 1px red;
        transform-origin: top right;         /* 以右上角为原点进行变形*/
        transform: rotate(-45deg);           /* 逆时针旋转45度*/
    }
    </style>
    <img class="bg" src="images/1.jpg">
    <img class="change" src="images/1.jpg">

比较效果如下图所示:
在这里插入图片描述

1.2、2D旋转

rotate()函数能够在2D空间内旋转对象,语法格式如下:

    rotate(<angle>)

其中,参数angle表示角度值,取值单位可以是:度,如90deg(90度,一圈360度);梯度,如100 grad(相当于90度,360度等于400 grad);弧度,如1.57 rad(约等于90度,360度等于2π);圈,如0.25 turn(等于90度,360度等于1 turn)。

【示例】以上节示例为基础,按默认原点逆时针旋转图像45度:

    img.change {
        border: solid 1px red;
        transform: rotate(-45deg);
    }

效果如下图所示:
在这里插入图片描述

1.3、2D缩放

scale()函数能够缩放对象大小,语法格式如下:

    scale(<number>[, <number>])

该函数包含两个参数值,分别用来定义宽和高的缩放比例。取值简单说明如下:

  • 如果取值为正数,则基于指定的宽度和高度将放大或缩小对象。
  • 如果取值为负数,则不会缩小元素,而是翻转元素(如文字被反转),然后再缩放元素。
  • 如果取值为小于1的小数(如0.5)可以缩小元素。
  • 如果第二个参数省略,则第二个参数等于第一个参数值。

【示例】继续以上节示例为基础,按默认原点把图像缩小1/2:

    img.change {
        border: solid 1px red;
        transform: scale(0.5);
    }

在这里插入图片描述

1.4、2D平移

translate()函数能够平移对象的位置,语法格式如下:

    translate(<translation-value>[, <translation-value>])

该函数包含两个参数值,分别用来定义对象在x轴和y轴相对于原点的偏移距离。如果省略参数,则默认值为0。如果取负值,则表示反向偏移,参考原点保持不变。

【示例】设计向右下角方向平移图像,其中x轴偏移150px,y轴偏移50px:

    img.change {
        border: solid 1px red;
        transform: translate(150px, 50px);
    }

在这里插入图片描述

1.5、2D倾斜

skew()函数能够倾斜显示对象,语法格式如下:

    skew(<angle> [, <angle>])

该函数包含两个参数值,分别用来定义对象在x轴和y轴倾斜的角度。如果省略参数,则默认值为0。与rotate()函数不同,rotate()函数只是旋转对象的角度,而不会改变对象的形状;skew()函数会改变对象的形状。

【示例】使用skew()函数变形图像,x轴倾斜30度,y轴倾斜20度:

    img.change {
        border: solid 1px red;
        transform: skew(30deg, 20deg);
    }

效果如下图所示:
在这里插入图片描述

1.6、2D矩阵

matrix()是一个矩阵函数,它可以同时实现缩放、旋转、平移和倾斜操作,语法格式如下:

    matrix(<number>, <number>, <number>, <number>, <number>, <number>)

该函数包含6个值,具体说明如下:

  • 第1个参数控制x轴缩放。
  • 第2个参数控制x轴倾斜。
  • 第3个参数控制y轴倾斜。
  • 第4个参数控制y轴缩放。
  • 第5个参数控制x轴平移。
  • 第6个参数控制y轴平移。

【示例】使用matrix()函数模拟:

    img.change {
        border: solid 1px red;
        transform: matrix(1, 0.6, 0.2, 1, 0, 0);
    }

提示:多个变形函数可以在一个声明中同时定义。例如:

    div {
        transform: translate(80, 80);
        transform: rotate(45deg);
        transform: scale(1.5, 1.5);}

针对上面样式,可以简化为:

    div { transform: translate(80, 80) rotate(45deg) scale(1.5, 1.5);}

在这里插入图片描述

2、过渡动画

2013年2月,W3C发布CSS Transitions工作草案,这个草案描述了CSS过渡动画的基本实现方法和属性,目前获得所有浏览器的支持。

2.1、设置过渡属性

transition-property属性定义过渡动画的CSS属性名称,基本语法如下所示:

    transition-property:none | all | [ <IDENT> ] [ ‘,’ <IDENT> ]*;

取值简单说明如下:

  • none:表示没有元素。
  • all:默认值,表示针对所有元素,包括:before和:after伪元素。
  • IDENT:指定CSS属性列表。几乎所有色彩、大小或位置等相关的CSS属性,包括许多新添加的CSS3属性都可以应用过渡,如CSS3变换中的放大、缩小、旋转、斜切、渐变等。

【示例】指定动画的属性为背景颜色。这样当鼠标经过盒子时,会自动从红色背景过渡到蓝色背景:

    <style type="text/css">
    div {
        margin: 10px auto; height: 80px;
        background: red;
        border-radius: 12px;
        box-shadow: 2px 2px 2px #999;
    }
    div:hover {
        background-color: blue;
        /*指定动画过渡的CSS属性*/
        transition-property: background-color;
    }
    </style>
    <div></div>

在这里插入图片描述

2.2、设置过渡时间

transition-duration属性定义转换动画的时间长度,基本语法如下所示:

    transition-duration:<time> [, <time>]*;

其中,初始值为0,适用于所有元素,以及:before和:after伪元素。在默认情况下,动画过渡时间为0 s,当指定元素动画时,会看不到过渡的过程,而直接看到结果。

【示例】以上节示例为例,设置动画过渡时间为2 s,当鼠标移过对象时,会看到背景色从红色逐渐过渡到蓝色:

    div:hover {
        background-color: blue;
        /*指定动画过渡的CSS属性*/
        transition-property: background-color;
        /*指定动画过渡的时间*/
        transition-duration:2s;
    }

在这里插入图片描述

2.3、设置延迟过渡时间

transition-delay属性定义开启过渡动画的延迟时间,基本语法如下所示:

    transition-delay:<time> [, <time>]*;

其中,初始值为0,适用于所有元素,以及:before和:after伪元素。设置时间可以为正整数、负整数和零。非零的时候必须设置单位是s(秒)或者ms(毫秒);为负数的时候,过渡的动作会从该时间点开始显示,之前的动作被截断;为正数的时候,过渡的动作会延迟触发。

【示例】继续以上节示例为基础进行介绍,设置过渡动画推迟2s后执行,则当鼠标移过对象时,会看不到任何变化,过了2 s之后,才发现背景色从红色逐渐过渡到蓝色。

    div:hover {
        background-color: blue;
        /*指定动画过渡的CSS属性*/
        transition-property: background-color;
        /*指定动画过渡的时间*/
        transition-duration: 2s;
        /*指定动画延迟触发 */
        transition-delay: 2s;
    }

2.4、设置过渡动画类型

transition-timing-function属性定义过渡动画的类型,基本语法如下所示:

    transition-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubicbezier(<number>, <number>, <number>, <number>)
[, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>,<number>, <number>)]*

属性初始值为ease,取值简单说明如下:

  • ease:平滑过渡,等同于cubic-bezier(0.25, 0.1, 0.25, 1.0)函数,即立方贝塞尔。
  • linear:线性过渡,等同于cubic-bezier(0.0, 0.0, 1.0, 1.0)函数。
  • ease-in:由慢到快,等同于cubic-bezier(0.42, 0, 1.0, 1.0)函数。
  • ease-out:由快到慢,等同于cubic-bezier(0, 0, 0.58, 1.0)函数。
  • ease-in-out:由慢到快再到慢,等同于cubic-bezier(0.42,0, 0.58, 1.0)函数。
  • cubic-bezier:特殊的立方贝塞尔曲线效果。

【示例】继续以上节示例为基础进行介绍,设置过渡类型为线性效果,代码如下所示:

    div:hover {
        background-color: blue;
        /*指定动画过渡的CSS属性*/
        transition-property: background-color;
        /*指定动画过渡的时间*/
        transition-duration: 10s;
        /*指定动画过渡为线性效果 */
        transition-timing-function: linear;
    }

2.5、设置过渡触发动作

CSS3过渡动画一般通过动态伪类触发,如下表所示:
在这里插入图片描述
也可以通过JavaScript事件触发,包括click、focus、mousemove、mouseover、mouseout等。

1、:hover

最常用的过渡触发方式是使用:hover伪类。

【示例1】设计当鼠标经过div元素时,该元素的背景颜色会在经过1 s的初始延迟后,于2 s内动态地从绿色变为蓝色。

    <style type="text/css">
    div {
        margin: 10px auto;
        height: 80px;
        border-radius: 12px;
        box-shadow: 2px 2px 2px #999;
        background-color: red;
        transition: background-color 2s ease-in 1s;
    }
    div:hover { background-color: blue}
    </style>
    <div></div>

2、:active

:active伪类表示用户单击某个元素并按住鼠标按钮时显示的状态。

【示例2】设计当用户单击div元素时,该元素被激活,这时会触发动画,高度属性从200px过渡到400px。如果按住该元素,保持活动状态,则div元素始终显示400px高度,松开鼠标之后,又会恢复到原来的高度:

    <style type="text/css">
    div {
        margin: 10px auto;
        border-radius: 12px;
        box-shadow: 2px 2px 2px #999;
        background-color: #8AF435;
        height: 200px;
        transition: width 2s ease-in;
    }
    div:active {height: 400px;}
    </style>
    <div></div>

在这里插入图片描述

3、: focus

:focus伪类通常会在表单对象接收键盘响应时出现。

【示例3】当输入框获取焦点时,输入框的背景色逐步高亮显示,如下图所示:

    <style type="text/css">
    label {
        display: block;
        margin: 6px 2px;
    }
    input[type="text"], input[type="password"] {
        padding: 4px;
        border: solid 1px #ddd;
        transition: background-color 1s ease-in;
    }
    input:focus { background-color: #9FFC54;}
    </style>
    <form id=fm-form action="" method=post>
        <fieldset>
            <legend>用户登录</legend>
            <label for="name">姓名
                <input type="text" id="name" name="name" >
            </label>
            <label for="pass">密码
                <input type="password" id="pass" name="pass" >
            </label>
        </fieldset>
    </form>

在这里插入图片描述
提示:把:hover伪类与:focus配合使用,能够丰富鼠标用户和键盘用户的体验。

4、:checked

:checked伪类在发生选中状况时触发过渡,取消选中则恢复原来的状态。

【示例4】设计当复选框被选中时缓慢缩进2个字符:

    <style type="text/css">
    label.name {
        display: block;
        margin: 6px 2px;
    }
    input[type="text"], input[type="password"] {
        padding: 4px;
        border: solid 1px #ddd;
    }
    input[type="checkbox"] { transition: margin 1s ease;}
    input[type="checkbox"]:checked { margin-left: 2em;}
    </style>
    <form id=fm-form action="" method=post>
        <fieldset>
            <legend>用户登录</legend>
            <label class="name" for="name">姓名
                <input type="text" id="name" name="name" >
            </label>
            <p>技术专长<br>
                <label>
                    <input type="checkbox" name="web" value="html" id="web_0">
                    HTML</label><br>
                <label>
                    <input type="checkbox" name="web" value="css" id="web_1">
                    CSS</label><br>
                <label>
                    <input type="checkbox" name="web" value="javascript" id="web_2">
                    JavaScript</label><br>
            </p>
        </fieldset>
    </form>

演示效果:
在这里插入图片描述

5、媒体查询

触发元素状态变化的另一种方法是使用CSS3媒体查询。

【示例5】设计div元素的宽度和高度为49%×200px,如果用户将窗口大小调整到420px或以下,则该元素将过渡为100%×100px。也就是说,当窗口宽度变化经过420px的阈值时,将会触发过渡动画:

    <style type="text/css">
    div {
        float: left; margin: 2px;
        width: 49%; height: 200px;
        background: #93FB40;
        border-radius: 12px;
        box-shadow: 2px 2px 2px #999;
        transition: width 1s ease, height 1s ease;
    }
    @media only screen and (max-width : 420px) {
        div {
            width: 100%;
            height: 100px;
        }
    }
    </style>
    <div></div>
    <div></div>

在这里插入图片描述

6、JavaScript事件

【示例6】可以使用纯粹的CSS伪类触发过渡,为了方便用户理解,这里通过jQuery脚本触发过渡:

    <script type="text/javascript" src="images/jquery-1.10.2.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#button").click(function() {
            $(".box").toggleClass("change");
        });
    });
    </script>
    <style type="text/css">
    .box {
        margin:4px;
        background: #93FB40;
        border-radius: 12px;
        box-shadow: 2px 2px 2px #999;
        width: 50%; height: 100px;
        transition: width 2s ease, height 2s ease;
    }
    .change { width: 100%; height: 120px;}
    </style>
    <input type="button" id="button" value="触发过渡动画" />
    <div class="box"></div>

在文档中包含一个box类的盒子和一个按钮,当单击按钮时,jQuery脚本会将盒子的类切换为change,从而触发过渡动画:
在这里插入图片描述
上面演示了样式发生变化会导致过渡动画,也可以通过其他方法触发这些更改,包括通过JavaScript脚本动态更改。从执行效率来看,事件通常应当通过JavaScript触发,简单动画或过渡则应使用CSS触发。

3、帧动画

2012年4月,W3C发布CSS Animations工作草案,在这个草案中描述了CSS关键帧动画的基本实现方法和属性。目前主流浏览器都支持CSS帧动画。

3.1、设置关键帧

CSS3使用@keyframes定义关键帧,具体用法如下所示:

    @keyframes animationname {
        keyframes-selector {
            css-styles;
        }
    }

其中参数说明如下:

  • animationname:定义动画的名称。
  • keyframes-selector:定义帧的时间位置,也就是动画时长的百分比,合法的值包括:0~100%、from(等价于0)、to(等价于100%)。
  • css-styles:表示一个或多个合法的CSS样式属性。

在动画设计过程中,用户能够多次改变CSS样式,以百分比定义样式改变发生的时间,或者通过关键词from和to。为了获得最佳浏览器支持,设计关键帧动画时,应该始终定义0和100%位置帧。最后,为每帧定义动态样式,同时将动画与选择器绑定。

【示例】演示让一个小方盒沿着方形框内壁匀速运动:

    <style>
    #wrap {                                    /* 定义运动轨迹包含框*/
        position:relative;                     /* 定义定位包含框,避免小盒子跑到外面运动*/
        border:solid 1px red;
        width:250px; height:250px;
    }
    #box {                                     /* 定义运动小盒的样式*/
        position:absolute;
        left:0; top:0;
        width: 50px; height: 50px;
        background: #93FB40;
        border-radius: 8px;
        box-shadow: 2px 2px 2px #999;
        /*定义帧动画:名称为ball,动画时长5s,动画类型为匀速渐变,动画无限播放*/
        animation: ball 5s linear infinite;
    }
    /*定义关键帧:共包括5帧,分别在总时长为0、25%、50%、75%、100%的位置*/
    /*每帧中设置动画属性为left和top,让它们的值匀速渐变,产生运动动画*/
    @keyframes ball {
        0 {left:0;top:0;}
        25% {left:200px;top:0;}
        50% {left:200px;top:200px;}
        75% {left:0;top:200px;}
        100% {left:0;top:0;}
    }
    </style>
    <div id="wrap">
        <div id="box"></div>
    </div>

在这里插入图片描述

3.2、设置动画属性

Animations功能与Transition功能相同,都是通过改变元素的属性值实现动画效果。它们的区别在于:使用Transitions功能时只能通过指定属性的开始值与结束值,然后以在这两个属性值之间进行平滑过渡的方式实现动画效果,因此不能实现比较复杂的动画效果;而Animations功能则通过定义多个关键帧以及定义每个关键帧中元素的属性值实现更为复杂的动画效果。

1.定义动画名称

使用animation-name属性可以定义CSS动画的名称,语法如下所示:

    animation-name:none | IDENT [, none | IDENT ]*;

其中,初始值为none,定义一个适用的动画列表。每个名字用来选择动画关键帧,提供动画的属性值。如名称是none,就不会有动画。

2.定义动画时间

使用animation-duration属性可以定义CSS动画的播放时间,语法如下所示。

    animation-duration:<time> [, <time>]*;

在默认情况下,该属性值为0,这意味着动画周期为0,即不会有动画。当值为负值时,则被视为0。

3.定义动画类型

使用animation-timing-function属性可以定义CSS动画类型,语法如下所示。

    animation-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubicbezier(<number>, <number>, number>, <number>) [,
ease | linear |ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>,<number>, <number>)]*

初始值为ease,取值说明可参考上面介绍的过渡动画类型。

4.定义延迟时间

使用animation-delay属性可以定义CSS动画延迟播放的时间,语法如下所示:

    animation-delay:<time> [, <time>]*;

该属性允许一个动画开始执行一段时间后才被应用。当动画延迟时间为0,即默认动画延迟时间,则意味着动画将尽快执行,否则该值指定将延迟执行的时间。

5.定义播放次数

使用animation-delay属性可以定义CSS动画延迟播放的时间,语法如下所示:

    animation-delay:<time> [, <time>]*;

该属性允许一个动画开始执行一段时间后才被应用。当动画延迟时间为0,即默认动画延迟时间,则意味着动画将尽快执行,否则该值指定将延迟执行的时间。

6.定义播放方向

使用animation-direction属性定义CSS动画的播放方向,基本语法如下所示。

    animation-direction:normal | alternate [, normal | alternate]*;

默认值为normal。当为默认值时,动画的每次循环都向前播放。另一个值是alternate,设置该值则表示第偶数次向前播放,第奇数次向反方向播放。

7.定义播放状态

使用animation-play-state属性定义动画正在运行还是暂停,语法如下所示:

    animation-play-state: paused|running;

初始值为running。其中,paused定义动画已暂停,running定义动画正在播放。

提示:可以在JavaScript中使用该属性,这样就能在播放过程中暂停动画。在JavaScript脚本中用法如下。

8.定义播放外状态

使用animation-fill-mode属性定义动画播放外状态,语法如下所示。

    animation-fill-mode:none | forwards | backwards | both [ , none | forwards | backwards | both ]*

初始值为none,如果提供多个属性值,以逗号进行分隔。取值说明如下:

  • none:不设置对象动画之外的状态。
  • forwards:设置对象状态为动画结束时的状态。
  • backwards:设置对象状态为动画开始时的状态。
  • both:设置对象状态为动画结束或开始的状态。

【示例】设计一个小球,并定义它水平向左运动,动画结束之后,再返回起始点位置:

    <style>
    /*启动运动的小球,并定义动画结束后返回*/
    .ball{
        width: 50px; height: 50px;
        background: #93FB40;
        border-radius: 100%;
        box-shadow:2px 2px 2px #999;
        animation:ball 1s ease backwards;
    }
    /*定义小球水平运动关键帧*/
    @keyframes ball{
        0%{transform:translate(0,0);}
        100%{transform:translate(400px);}
    }
    </style>
    <div class="ball"></div>

效果如下图所示:
在这里插入图片描述

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

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

相关文章

嵌入式每日500(3)231103 (总线结构,存储器映射,启动配置,FLASH读、写、擦除介绍,CRC校验,选项字节,)

这里写目录标题 1.总线结构2.STM32F072VBT6存储器映射3.启动配置&#xff08;BOOT0&#xff0c;BOOT1&#xff09;4.FLASH存储器&#xff08;读、写、擦除&#xff09;5.CRC计算单元6.选项字节 1.总线结构 主模块&#xff08;2个&#xff09;Cortex-M0内核、DMA通道从模块&…

20.4 OpenSSL 套接字AES加密传输

在读者了解了加密算法的具体使用流程后&#xff0c;那么我们就可以使用这些加密算法对网络中的数据包进行加密处理&#xff0c;加密算法此处我们先采用AES算法&#xff0c;在网络通信中&#xff0c;只需要在发送数据之前对特定字符串进行加密处理&#xff0c;而在接收到数据后在…

【面试经典150 | 链表】随机链表的复制

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;哈希表递归方法二&#xff1a;哈希表方法三&#xff1a;迭代拆分节点 写在最后 Tag 【递归】【迭代】【链表】 题目来源 138. 随机链表的复制 题目解读 对一个带有随机指向的链表进行深拷贝操作。 解题思路 本题一共…

layui form表单 调整 label 宽度

这个可以调整所有label .layui-form-label {width: 120px !important; } .layui-input-block {margin-left: 150px !important; }情况是这样的&#xff0c;表单里有多个输入框&#xff0c;只有个别label 是长的&#xff0c;我就想调整一下个别长的&#xff0c;其它不变 <di…

小程序day02

目标 WXML模板语法 数据绑定 事件绑定 那麽問題來了&#xff0c;一次點擊會觸發兩個組件事件的話&#xff0c;該怎么阻止事件冒泡呢&#xff1f; 文本框和data的双向绑定 注意点: 只在标签里面用value“{{info}}”&#xff0c;只会是info到文本框的单向绑定&#xff0c;必须在…

1、循环依赖详解(一)

什么是循环依赖&#xff1f; 什么情况下循环依赖可以被处理&#xff1f; Spring是如何解决的循环依赖&#xff1f; 只有在setter方式注入的情况下&#xff0c;循环依赖才能解决&#xff08;错&#xff09; 三级缓存的目的是为了提高效率&#xff08;错&#xff09; 什么是循环…

在基于亚马逊云科技的湖仓一体架构上构建数据血缘的探索和实践

背景介绍 随着大数据技术的进步&#xff0c;企业和组织越来越依赖数据驱动的决策。数据的质量、来源及其流动性因此显得非常关键。数据血缘分析为我们提供了一种追踪数据从起点到终点的方法&#xff0c;有助于理解数据如何被转换和消费&#xff0c;同时对数据治理和合规性起到关…

Ajax学习笔记第8天

放弃该放弃的是无奈&#xff0c;放弃不该放弃的是无能&#xff0c;不放弃该放弃的是无知&#xff0c;不放弃不该放弃的是执着&#xff01; 【1. 聊天室小案例】 文件目录 初始mysql数据库 index.html window.location.assign(url); 触发窗口加载并显示指定的 url的内容 当前…

TSINGSEE青犀特高压输电线可视化智能远程监测监控方案

一、背景需求分析 特高压输电线路周边地形复杂&#xff0c;纵横延伸几十甚至几百千米&#xff0c;并且受所处地理环境和气候影响很大。传统输电线路检查主要依靠维护人员周期性巡视&#xff0c;缺乏一定的时效性&#xff0c;在巡视周期的真空期也不能及时掌握线路走廊外力变化…

AQS面试题总结

一&#xff1a;线程等待唤醒的实现方法 方式一&#xff1a;使用Object中的wait()方法让线程等待&#xff0c;使用Object中的notify()方法唤醒线程 必须都在synchronized同步代码块内使用&#xff0c;调用wait&#xff0c;notify是锁定的对象&#xff1b; notify必须在wait后执…

振弦式传感器读数模块VM5系列介绍

VM5系列是专门针对单线圈式振弦传感器研发&#xff0c;可完成传感器的线圈激励、频率读数、温度测量等工作&#xff0c;具有标准的 UART&#xff08;TTL/RS232/RS485&#xff09;和 IIC 数字接口、模拟量输出接口&#xff08;电压或电流&#xff09;&#xff0c;通过数字接口数…

【论文阅读笔记】GLM-130B: AN OPEN BILINGUAL PRE-TRAINEDMODEL

Glm-130b:开放式双语预训练模型 摘要 我们介绍了GLM-130B&#xff0c;一个具有1300亿个参数的双语(英语和汉语)预训练语言模型。这是一个至少与GPT-3(达芬奇)一样好的100b规模模型的开源尝试&#xff0c;并揭示了如何成功地对这种规模的模型进行预训练。在这一过程中&#xff0…

arcgis图上添加发光效果!

看完本文, 你可以不借助外部图片素材, 让你的图纸符号表达出你想要的光! 我们以之前的某个项目图纸为例,来介绍下让符号发光的技术! 第一步—底图整理 准备好栅格影像底图、行政边界的矢量数据,确保“数据合适、位置正确、边界吻合”。 确定好图纸的大小、出图比例、投…

食品企业数字孪生可视化管理平台,实现智慧轻工业高质量发展

如今&#xff0c;数字技术正在打破传统食品产业的边界&#xff0c;随着食品加工产业链不断进化为智慧体&#xff0c;数字孪生技术已经成了食品行业数字进阶的重要抓手。食品加工数字孪生工厂&#xff0c;通过应用数字孪生技术&#xff0c;将食品加工工厂的自动化生产线全过程进…

浏览器哪家强——PC端篇

今天的分享将围绕一个大家再熟悉不过的名称展开——浏览器。 根据百科给出的解释&#xff1a;浏览器是用来检索、展示以及传递Web信息资源的应用程序。通俗的说&#xff0c;浏览器就是一种阅读工具&#xff0c;类似记事本、word、wps&#xff0c;只不过后者阅读的是文本文档&am…

Linux0.11内核源码解析-malloc

malloc介绍 Linux内核版本0.11中的malloc.c文件实现了内存分配的功能。在这个版本的Linux内核中&#xff0c;malloc.c文件包含了内核级别的内存分配函数&#xff0c;用于分配和释放内核中的内存。这些函数可以帮助内核管理可用的内存&#xff0c;并允许内核动态地分配和释放内…

ajax-axios发送 get请求 或者 发送post请求带有请求体参数

/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */ !function(e,t){"object"typeof exports&&"object"typeof module?module.exportst():"function"typeof define&&define.amd?define([],t):"object"typeof export…

记一次大数据事故@用了很久的虚拟机环境突然不能联网了

记一次大数据事故用了很久的虚拟机环境突然不能联网了 背景 今天打开自己电脑上的虚拟机环境打算练习一下flink&#xff0c;结果发现vmware里虚拟机能正常开机&#xff0c;也能正常进图os&#xff0c;但是就是不能ping通主机&#xff0c;主机也不能ping通虚拟机 探查 1、…

绝缘检测原理和绝缘电阻计算方法

文章目录 简介绝缘检测功能绝缘检测原理绝缘电阻检测的常用方法不平衡电桥法 绝缘电阻绝缘电阻的计算 绝缘检测开启或关闭为什么根据 V1 &#xff1c; V2 或 V1 ≥ V2 判断是上桥臂并入电阻还是下桥臂并入电阻 简介 绝缘检测是判断动力&#xff08;正、负&#xff09;总线与外…

Maven本地配置获取nexus私服的依赖

场景 Nexus-在项目中使用Maven私服&#xff0c;Deploy到私服、上传第三方jar包、在项目中使用私服jar包&#xff1a; Nexus-在项目中使用Maven私服&#xff0c;Deploy到私服、上传第三方jar包、在项目中使用私服jar包_nexus maven-releases 允许deploy-CSDN博客 在上面讲的是…