前端css中的transform(转换)的使用

news2025/1/12 12:08:45

前端css中的transform的使用

  • 一、前言
  • 二、流程图
  • 三、举例
    • (一)、平移
      • 1.平移,源码1
      • 2.源码1运行效果
        • (1).视频效果
        • (2).截图效果
      • 3.平移3d效果,源码2
      • 4.源码2运行效果
        • (1)、视频效果
        • (2)、截图效果
    • (二)、旋转
      • 1.旋转,源码3
      • 2.源码3运行效果
        • (1)、视频效果
        • (2)、截图效果
      • 3.旋转3d效果,源码4
      • 4.源码4运行效果
        • (1)、视频效果
        • (2)、截图效果
    • (三)、缩放
      • 1.缩放,源码5
      • 2.源码5运行效果
        • (1)、视频效果
        • (2)、截图效果
      • 3.缩放3d效果,源码6
      • 4.源码6运行效果
        • (1)、视频效果
        • (2)、截图效果
    • (四)、倾斜
      • 1.倾斜,源码7
      • 2.源码7运行效果
        • (1)、视频效果
        • (2)、截图效果
    • (五)、综合变换
      • 1.综合变换,源码8
      • 2.源码8运行效果
        • (1)、视频效果
        • (2)、截图效果
  • 四、结语
  • 五、定位日期

一、前言

css中transform的属性虽然有多个,其实弄懂了平移(translate)、旋转(rotate)、缩放(scale)、倾斜(skew),后面的那些关于3d效果以及综合变换(如:平移+旋转+缩放等,自由组配)的属性就是这些前面4种效果的延伸和拓展。
在3d的效果下transform-style: preserve-3d; /* 保留 3D 效果 */通常要添加,不然程序有些时候达不到预期的3d视图效果,只显示2d状态效果。通常设置于元素的父集中。
此外,倾斜通常用于2d状态的变换,对于类似倾斜的3d的效果通常由rotate实现。
本文为了让效果更明显,结合“:hover”鼠标悬停效果来举例。

二、流程图

平面2d效果
3d效果
3d效果
3d效果
3d效果
平面2d效果
3d效果
3d效果
3d效果
3d效果
平面2d效果
3d效果
3d效果
3d效果
3d效果
transform(转换)
平移translate
旋转rotate
缩放scale
倾斜skew
综合变换
translate(x,y)
在X和Y轴上移动元素
translate(x,y,z)
在X、Y、Z轴上移动元素
translateX(x)
在X轴上移动元素
translateY(y)
在Y轴上移动元素
translateZ(z)
在Z轴上移动元素
rotate(angle角度)
旋转指定角度
rotate3d(x,y,z,角度)
在3D空间中绕指定轴旋转
rotateX(角度)
绕X轴旋转
rotateY(角度)
绕Y轴旋转
rotateZ(角度)
绕Z轴旋转
scale(x,y)
缩放X轴和Y轴
scale3d(x,y,z)
在 X、Y、Z 轴上缩放
scaleX(x)
在 X 轴上缩放
scaleY(y)
在 X 轴上缩放
scaleZ(z)
在 X 轴上缩放
skew(x角度,y角度)
在X和Y轴上倾斜
skewX(角度)
在X轴上倾斜
skewY(角度)
在Y轴上倾斜
前面几种功能属性的混合,如旋转+缩放,通过空格分隔

三、举例

(一)、平移

关键词句:transform: translate(-100px, 80px); /* 悬停时图片平移
x轴正数向右,y轴正数向下,z轴正数指向屏幕面前的我们。大致下面的效果:
请添加图片描述
在3d效果下,perspective: 1000px; /* 添加透视效果 */表示的是观众面向组件的距离,这个距离是1000px。此时如果z轴的参数为500px,就相对于组件往我们的方向移动了500px。通过我们平时对物体的观察,物体靠近了它就看起来变大了。反过来也一样,当是-500px说明物理远离我们500px,则看起来就会变小。也因此,3d的平移效果也可以用2d平移+缩放达到类似效果。

1.平移,源码1

<!DOCTYPE html>  <!-- 声明文档类型,表明这是一个 HTML5 文档 -->
<html lang="en">  <!-- 指定文档的语言为英文 -->
<head>
  <meta charset="UTF-8">  <!-- 设置文档的字符编码为 UTF-8 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度为视窗高度 */
      width: 90vw;  /* 宽度为视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便内容对齐 */
      justify-content: center;  /* 水平居中 */
      align-items: center;  /* 垂直居中 */
      background-color: greenyellow;  /* 设置容器的背景颜色 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url('./小蜗牛.jpg');  /* 背景图像 */
      border-radius: 5px;  /* 圆角边框 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 平滑动画过渡 */
    }

    /* 悬停时的效果 */
    .box:hover {
      transform: translate(-100px, 80px);  /* 悬停时图片平移 */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 容器,包含其他内容 -->
    <div class="box"></div>  <!-- 方块,可以悬停触发平移 -->
  </div>
</body>
</html>

2.源码1运行效果

(1).视频效果

transform平移效果

(2).截图效果
  • 鼠标未悬停在组件上时,效果截图如下:
    在这里插入图片描述

  • 鼠标悬停在组件上时,组件往左下角移动,效果截图如下:
    在这里插入图片描述

3.平移3d效果,源码2

<!DOCTYPE html>  <!-- 声明文档类型,表明这是一个 HTML5 文档 -->
<html lang="en">  <!-- 指定 HTML 文档的语言为英文 -->
<head>
  <meta charset="UTF-8">  <!-- 设置文档的字符编码为 UTF-8 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度等于视窗高度 */
      width: 90vw;  /* 宽度等于视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便内容对齐 */
      justify-content: center;  /* 水平居中对齐 */
      align-items: center;  /* 垂直居中对齐 */
      background-color: greenyellow;  /* 设置容器的背景颜色 */
      perspective: 1000px;  /* 添加透视效果 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url('./小蜗牛.jpg');  /* 设置背景图像 */
      border-radius: 5px;  /* 圆角边框,方块的边缘有圆角 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 平滑动画过渡 */
      transform-style: preserve-3d;  /* 保留 3D 效果 */
    }

    /* 悬停时的效果 */
    .box:hover {
      transform: translate3d(50px, 20px, 500px);  /* 悬停时沿 X 轴平移 50px,Y 轴平移 20px,Z 轴平移 500px */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 容器,包含其他内容 -->
    <div class="box"></div>  <!-- 方块,在悬停时进行 3D 平移 -->
  </div>
</body>
</html>

4.源码2运行效果

(1)、视频效果

transform平移效果3d

(2)、截图效果
  • 鼠标未悬停时,效果截图如下:
    在这里插入图片描述
  • 鼠标悬停时,效果截图如下:
    在这里插入图片描述

(二)、旋转

关键词句:transform: rotate(-180deg); /* 悬停时旋转 180 度 */
括号里添加角度,正角度为顺时针,负角度为逆时针。

1.旋转,源码3

<!DOCTYPE html>  <!-- 声明文档类型 -->
<html lang="en">  <!-- 定义 HTML 文档的语言 -->
<head>
  <meta charset="UTF-8">  <!-- 设置字符编码 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度等于视窗高度 */
      width: 90vw;  /* 宽度为视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便对齐和分布 */
      justify-content: center;  /* 内容水平居中 */
      align-items: center;  /* 内容垂直居中 */
      background-color: greenyellow;  /* 容器背景颜色 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url(./小蜗牛.jpg);  /* 背景图像 */
      border-radius: 5px;  /* 圆角边框 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 平滑动画 */
      transform: rotate(0deg);  /* 初始状态下不旋转 */
    }

    /* 悬停时的效果 */
    .box:hover {
      transform: rotate(-180deg);  /* 悬停时旋转 180 度 */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 定义容器,包裹其他内容 -->
    <div class="box"></div>  <!-- 定义方块 -->
  </div>
</body>
</html>

2.源码3运行效果

(1)、视频效果

transform旋转效果

(2)、截图效果
  • 鼠标未悬停在组件上时,效果截图如下:
    在这里插入图片描述

  • 鼠标悬停在组件上时,效果截图如下:
    在这里插入图片描述

3.旋转3d效果,源码4

<!DOCTYPE html>  <!-- 声明文档类型,表明这是一个 HTML5 文档 -->
<html lang="en">  <!-- 定义 HTML 文档的语言 -->
<head>
  <meta charset="UTF-8">  <!-- 设置字符编码 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度等于视窗高度 */
      width: 90vw;  /* 宽度为视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便对齐和分布 */
      justify-content: center;  /* 内容水平居中 */
      align-items: center;  /* 内容垂直居中 */
      background-color: greenyellow;  /* 设置容器的背景颜色 */
      perspective: 1000px;  /* 为 3D 效果提供深度感 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url('./小蜗牛.jpg');  /* 背景图像 */
      border-radius: 5px;  /* 圆角边框 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 平滑动画过渡 */
      transform-style: preserve-3d;  /* 保留 3D 效果 */
    }

    /* 悬停时的 3D 旋转效果 */
    .box:hover {
      transform: rotate3d(1, 1, 0, 180deg);  /* 悬停时沿 (1, 1, 0) 轴旋转 90 度 */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 容器,包含其他内容 -->
    <div class="box"></div>  <!-- 方块,悬停时进行 3D 旋转 -->
  </div>
</body>

4.源码4运行效果

(1)、视频效果

transform旋转效果3d

(2)、截图效果
  • 鼠标未悬停在组件上时,效果截图如下:
    在这里插入图片描述
  • 鼠标悬停在组件上时,效果截图如下:
    在这里插入图片描述

(三)、缩放

关键词句: transform: scale(2, 3); /* 悬停时将方块在 X 轴上缩放 2 倍,Y 轴上缩放 3 倍 */
2d平面情况下,x,y的系数大于1则图形变大,小于1则图形变小。如果括号里只填一个参数,那么长和宽同比例变大或变小。

1.缩放,源码5

<!DOCTYPE html>  <!-- 声明文档类型,表明这是一个 HTML5 文档 -->
<html lang="en">  <!-- 指定 HTML 文档的语言为英文 -->
<head>
  <meta charset="UTF-8">  <!-- 设置文档的字符编码为 UTF-8 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度等于视窗高度 */
      width: 90vw;  /* 宽度等于视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便内容对齐 */
      justify-content: center;  /* 水平居中对齐 */
      align-items: center;  /* 垂直居中对齐 */
      background-color: greenyellow;  /* 设置容器的背景颜色 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url('./小蜗牛.jpg');  /* 设置背景图像 */
      border-radius: 5px;  /* 圆角边框,使方块的边缘有圆角 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 为动画过渡添加平滑效果 */
    }

    /* 悬停时的效果 */
    .box:hover {
      transform: scale(2, 3);  /* 悬停时将方块在 X 轴上缩放 2 倍,Y 轴上缩放 3 倍 */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 容器,包含其他内容 -->
    <div class="box"></div>  <!-- 方块,在悬停时缩放 -->
  </div>
</body>
</html>

2.源码5运行效果

(1)、视频效果

transform缩放效果

(2)、截图效果
  • 鼠标未悬停于组件上时,效果截图如下:
    在这里插入图片描述

  • 鼠标悬停于组件上时,效果截图如下:
    在这里插入图片描述

3.缩放3d效果,源码6

因为z轴是指向观众的,在缩放的条件下,z方向它变大和变小我们都不容易观察效果。所以3d的缩放效果我们配合3d旋转效果rotate3d展示。源码6是z轴变为原来的7倍scale3d(2, 1.4, 7)效果。运行效果我们先截图z轴不变scale3d(2, 1.4, 1),只旋转的效果,最后再截图7倍的效果。通过下面的效果,可以看出在旋转角度相同的情况下观测,z轴方向的内容缩放因为变大了,当组件旋转向我们时,我们看到的也变大变长。

<!DOCTYPE html>  <!-- 声明文档类型,表明这是一个 HTML5 文档 -->
<html lang="en">  <!-- 定义 HTML 文档的语言 -->
<head>
  <meta charset="UTF-8">  <!-- 设置文档的字符编码 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度等于视窗高度 */
      width: 90vw;  /* 宽度等于视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便对齐和分布 */
      justify-content: center;  /* 水平居中 */
      align-items: center;  /* 垂直居中 */
      background-color: greenyellow;  /* 设置容器的背景颜色 */
      perspective: 1000px;  /* 为 3D 效果提供深度感 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url('./小蜗牛.jpg');  /* 背景图像 */
      border-radius: 5px;  /* 圆角边框 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 平滑动画过渡 */
      transform-style: preserve-3d;  /* 保留 3D 效果 */
    }

    /* 悬停时的 3D 缩放与旋转效果 */
    .box:hover {
      transform: scale3d(2, 1.4, 7) rotate3d(1, 1, 0, 45deg);  /* 悬停时在 X 轴上缩放 2 倍,Y 轴上缩放 1.4 倍,Z 轴上缩放 7 倍,绕 (1, 1, 0) 轴旋转 45 度 */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 容器,提供透视效果和深度感 -->
    <div class="box"></div>  <!-- 方块,悬停时进行 3D 缩放与旋转 -->
  </div>
</body>
</html>

4.源码6运行效果

(1)、视频效果

transform缩放效果3d

(2)、截图效果
  • 鼠标未悬停时,效果截图:
    在这里插入图片描述
  • 鼠标悬停时,且z轴缩放不变,即scale3d(2, 1.4, 1)时,效果截图如下:
    在这里插入图片描述
  • 鼠标悬停时,且z轴缩放不变,即scale3d(2, 1.4, 7)时,效果截图如下:
    在这里插入图片描述

(四)、倾斜

关键词句: transform: skew(30deg, -15deg); /* 悬停时在 X 轴上倾斜 30 度,在 Y 轴上倾斜 -15 度 */

  • 若括号里只有一个参数,显示的是x轴的倾斜效果。
  • 对于 skewX,正数表示向左倾斜,负数表示向右倾斜。
  • 对于 skewY,正数表示向下倾斜,负数表示向上倾斜。

倾斜的效果主要用于二维的情况下。它的一下换和选择非常相似,比如在transform: skew(15deg, -15deg);时,看它也是一个旋转效果。

1.倾斜,源码7

<!DOCTYPE html>  <!-- 声明文档类型,表明这是一个 HTML5 文档 -->
<html lang="en">  <!-- 指定 HTML 文档的语言为英文 -->
<head>
  <meta charset="UTF-8">  <!-- 设置文档的字符编码为 UTF-8 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度等于视窗高度 */
      width: 90vw;  /* 宽度等于视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便内容对齐 */
      justify-content: center;  /* 水平居中对齐 */
      align-items: center;  /* 垂直居中对齐 */
      background-color: greenyellow;  /* 设置容器的背景颜色 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url('./小蜗牛.jpg');  /* 设置背景图像 */
      border-radius: 5px;  /* 圆角边框,方块的边缘有圆角 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 平滑动画过渡 */
    }

    /* 悬停时的效果 */
    .box:hover {
      transform: skew(30deg, -15deg);  /* 悬停时在 X 轴上倾斜 30 度,在 Y 轴上倾斜 -15 度 */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 容器,包含其他内容 -->
    <div class="box"></div>  <!-- 方块,悬停时倾斜 -->
  </div>
</body>
</html>

2.源码7运行效果

(1)、视频效果

transform倾斜效果

(2)、截图效果
  • 鼠标未悬停时,效果截图如下:
    在这里插入图片描述
  • 鼠标悬停时,效果截图如下:
    在这里插入图片描述

(五)、综合变换

我们还可以结合不同的属性进行变换,如:旋转+平移+缩放。在transform下添加属性,用空格隔开即可。这里我们只是简单的选了几个功能合并,优秀的读者可以自行搭配自己的想法添加不同的功能进行演示。
关键词句: transform: translateX(100px) rotateY(180deg) scale(1.5, 2); /* 悬停时在 X 轴上平移 100px,绕 Y 轴旋转 180 度,X 轴上缩放 1.5 倍,Y 轴上缩放 2 倍 */

1.综合变换,源码8

<!DOCTYPE html>  <!-- 声明文档类型,表明这是一个 HTML5 文档 -->
<html lang="en">  <!-- 指定 HTML 文档的语言为英文 -->
<head>
  <meta charset="UTF-8">  <!-- 设置文档的字符编码为 UTF-8 -->
  <style>
    /* 定义容器的样式 */
    .container {
      height: 100vh;  /* 高度等于视窗高度 */
      width: 90vw;  /* 宽度等于视窗宽度的 90% */
      display: flex;  /* 弹性布局,方便对齐 */
      justify-content: center;  /* 水平居中对齐 */
      align-items: center;  /* 垂直居中对齐 */
      background-color: greenyellow;  /* 设置容器的背景颜色 */
    }

    /* 定义方块的样式 */
    .box {
      width: 200px;  /* 固定宽度 */
      height: 150px;  /* 固定高度 */
      background-image: url('./小蜗牛.jpg');  /* 设置背景图像 */
      border-radius: 5px;  /* 圆角边框,方块的边缘有圆角 */
      background-size: cover;  /* 背景图像覆盖整个方块 */
      transition: transform 0.5s ease-in-out;  /* 平滑动画过渡 */
    }

    /* 悬停时的效果 */
    .box:hover {
      transform: translateX(100px) rotateY(180deg) scale(1.5, 2);  /* 悬停时在 X 轴上平移 100px,绕 Y 轴旋转 180 度,X 轴上缩放 1.5 倍,Y 轴上缩放 2 倍 */
    }
  </style>
</head>
<body>
  <div class="container">  <!-- 容器,包含其他内容 -->
    <div class="box"></div>  <!-- 方块,悬停时进行平移、旋转和缩放 -->
  </div>
</body>
</html>

2.源码8运行效果

(1)、视频效果

综合效果

(2)、截图效果
  • 鼠标未悬停在组件上时,效果截图如下:
    在这里插入图片描述

鼠标悬停在组件上时,效果截图如下:
在这里插入图片描述

四、结语

关于transform变换,也是前面学习中遇到过的。虽然它的内容有些多,但殊途同源,会了平移、旋转、缩放,便可以理类推,推出相关的3d用法、混合用法。至于倾斜,以字体倾斜来类推,且属性不多也好记。
这transform今天选择学习它,是因这两天摸索水波ripple功能时多次碰到,加上前面学习的多多少少也碰到过几次,为了学习提升,故此写文。

五、定位日期

2024.4.22
19:18

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

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

相关文章

【C语言】红黑树详解以及C语言模拟

一、红黑树的性质二、红黑树的旋转操作三、红黑树的插入操作四、红黑树的删除操作五、红黑树的应用六、C语言模拟红黑树七、总结 红黑树是一种自平衡二叉查找树&#xff0c;它能够保持树的平衡&#xff0c;从而确保查找、插入和删除的最坏情况时间复杂度为O( l o g n log_n log…

41-数组 _ 数组作为函数参数

41-1 冒泡排序函数的设计 数组传参的时候&#xff0c;形参有2种写法&#xff1a; 1、数组 2、指针 往往我们在写代码的时候&#xff0c;会将数组作为参数传个函数 如&#xff1a;实现一个冒泡排序&#xff0c;将数组的数据排成升序 冒泡排序的核心思想&#xff1a; 1、两…

新能源汽车小米su7

小米su7汽车 function init() {const container document.querySelector( #container );camera new THREE.PerspectiveCamera( 20, window.innerWidth / window.innerHeight, 1, 50000 );camera.position.set( 0, 700, 7000 );scene new THREE.Scene();scene.background ne…

kubebuilder(4)部署测试

将crd部署到k8s make install 日志&#xff1a; kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/demoes.tutorial.demo.com created 查看下[rootpaas-m-k8s-master-1 demo-operator]# kubectl api-resources | grep demo de…

yolov8 区域声光报警+计数

yolov8 区域报警计数 1. 基础2. 报警功能2. 1声音报警代码2. 2画面显示报警代码 3. 完整代码4. 源码 1. 基础 本项目是在 yolov8 区域多类别计数 的基础上实现的&#xff0c;具体区域计数原理可见上边文章 2. 报警功能 设置一个区域region_points&#xff0c;当行人这一类别…

【AIGC调研系列】Phi-3 VS Llama3

2024-04-24日发布的Phi-3系列模型在多个方面展现出了对Llama-3的性能优势。首先&#xff0c;Phi-3-small&#xff08;7B参数&#xff09;在MMLU上的得分高于Llama-3-8B-Instruct模型&#xff0c;分别为75.3%和66%[1]。此外&#xff0c;具有3.8B参数的Phi-3 Mini在性能上优于Lla…

解密Java多线程同步:掌握线程间同步与互斥技巧

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

JavaScript:js实现在线五子棋人机(人人)对弈

在线五子棋人机对弈 全部使用前端技术,使用HTML,CSS以及JS进行实现. 棋盘在后端就是一个15*15的二维数组 页面设计 页面设计的比较粗糙 主要使用js自带的canvas画布进行绘画 HTML代码如下: <div class"outer"><canvas id"canvas" height&qu…

linux权限维持(四)

6.inetd服务后门 inetd 是一个监听外部网络请求 ( 就是一个 socket) 的系统守护进程&#xff0c;默认情况下为 13 端口。当 inetd 接收到 一个外部请求后&#xff0c;它会根据这个请求到自己的配置文件中去找到实际处理它的程序&#xff0c;然后再把接收到的 这个socket 交给那…

B2B企业如何做好谷歌Google广告推广营销布局?

当今全球化的商业环境中&#xff0c;B2B企业要想在激烈的市场竞争中脱颖而出&#xff0c;拓展海外市场成为了必经之路。而谷歌Google广告&#xff0c;作为全球最大的在线广告平台&#xff0c;无疑是企业触达全球潜在客户的黄金钥匙。云衔科技通过专业服务助力企业轻松开户与高效…

CST初级教程 二

本教程将讲解CST Studio的视窗操控的基本操作. 3D视窗的快捷操作 动态放大与缩小&#xff08;Dynamic Zoom&#xff09; 将鼠标指针移动到CST Studio图形视窗中&#xff0c;向上滚动鼠标滚轮&#xff0c;可动太放大图形视窗中的显示内容&#xff0c;向下滚动鼠标滚轮即可动态缩…

非对称渐开线齿轮学习笔记分享

最近有小伙伴遇到了非对称渐开线齿轮的加工问题,花了些时间学习了解一下,下面是总结的学习笔记,有兴趣的朋友可以瞅瞅: 目录: 为什么要采用非对称? 非对称有什么优点? 非对称齿形如何加工? 非对称齿轮怎么测量? 非对称齿轮建模 为什么要采用非对称? 现在的传动要求…

Linux:进程创建 进程终止

Linux&#xff1a;进程创建 & 进程终止 进程创建fork写时拷贝 进程终止退出码strerrorerrno 异常信号exit 进程创建 fork fork函数可以用于在程序内部创建子进程&#xff0c;其包含在头文件<unistd.h>中&#xff0c;直接调用fork()就可以创建子进程了。 示例代码&…

【C语言】深入理解KMP算法及C语言实现

一、KMP算法简介 KMP算法&#xff08;Knuth-Morris-Pratt算法&#xff09;是一种高效的字符串匹配算法&#xff0c;由Donald Knuth、James H. Morris和 Vaughan Pratt共同发明。KMP算法的核心思想是当一次字符比较失败时&#xff0c;利用已经得到的部分匹配信息&#xff0c;将模…

JVM虚拟机监控及性能调优实战

目录 jvisualvm介绍 1. jvisualvm是JDK自带的可以远程监控内存&#xff0c;跟踪垃圾回收&#xff0c;执行时内存&#xff0c;CPU/线程分析&#xff0c;生成堆快照等的工具。 2. jvisualvm是从JDK1.6开始被继承到JDK中的。jvisualvm使用 jvisualvm监控远程服务器 开启远程监控…

【Java框架】SpringMVC(三)——异常处理,拦截器,文件上传,SSM整合

目录 异常处理解释局部异常处理全局异常 拦截器拦截器介绍作用:拦截器和过滤器之间的区别拦截器执行流程代码实现补充 文件上传依赖配置MultipartResolver编写文件上传表单页APIMultipartFileFile.separator必须对上传文件进行重命名代码示例 SpringMVC文件上传流程多文件上传 …

mybatis中<if>条件判断带数字的字符串失效问题

文章目录 一、项目背景二、真实错误原因说明三、解决方案3.1针对纯数字的字符串值场景3.2针对单个字符的字符串值场景 四、参考文献 一、项目背景 MySQL数据库使用Mybatis查询拼接select语句中进行<if>条件拼接的时候&#xff0c;发现带数字的或者带单个字母的字符串失效…

Coursera: An Introduction to American Law 学习笔记 Week 03: Property Law

An Introduction to American Law 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 03: Property LawKey Property Law TermsSupplemental Re…

LM324的输出VOL与IOL你注意过吗?

电路图 途中LMC6084 更改为LM324 故障现象 这个电路的输入输出表达式为 R30 两端电压等于0V 当J16 的4脚与2脚相等&#xff0c;等于5V&#xff08;或者4脚略大于2脚时&#xff09;7脚输出 约 500mV&#xff1b; 实际应该为0V左右才对.见下图 故障原因 上图运放输出低电平…

AI重塑数字安全,安恒信息行胜于言

有人曾言&#xff1a;所有行业都值得基于人工智能技术重做一遍。 深以为然。如今&#xff0c;数字安全产业面临着一次重要的重塑机遇。以大模型为代表的人工智能技术正深刻影响着数字安全市场格局、产品研发、技术方案以及运营服务。产业界已形成共识&#xff0c;即谁能抓住人…