Web前端—移动Web第二天(空间转换、动画、综合案例:全名出游)

版本说明

当前版本号[20231118]。

版本修改说明
20231118初版

目录

文章目录

  • 版本说明
  • 目录
  • 移动 Web 第二天
    • 01-空间转换
      • 空间转换简介
      • 平移
      • 视距
      • 旋转
      • 左手法则
      • rotate3d-了解
      • 立体呈现
      • 案例-3d导航
      • 缩放
    • 02-动画
      • 动画实现步骤
      • animation复合属性
      • animation拆分写法
      • 案例-走马灯
      • 精灵动画
      • 多组动画
    • 03-综合案例-全名出游
      • 背景
      • 云彩位置和动画
      • 热气球和气泡的动画
      • 文字动画

移动 Web 第二天

01-空间转换

空间转换简介

  • 空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同。
  • 空间转换也叫 3D转换
  • 属性:transform
  • 而默认效果下,是看不到Z轴的平移效果。

1681723381377

平移

transform: translate3d(x, y, z);
transform: translateX();
transform: translateY();
transform: translateZ();

取值与平面转换相同

默认情况下,Z 轴平移没有效果,原因:电脑屏幕默认是平面,无法显示 Z 轴平移效果

视距

作用:指定了观察者Z=0 平面的距离,为元素添加透视效果

形容:可以看成是人眼与电脑之间的距离

透视效果:近大远小、近实远虚

属性:(添加给直接父级,取值范围 800-1200)

perspective: 视距;

1681723504103

1、增加一个透视效果。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>透视效果</title><style>.son{width: 200px;height: 200px;margin: 100px auto;background-color: pink;transition: all 0.5s;}.son:hover{transform: translateZ(-200px);}</style></head><body><div class="father"><div class="son"></div></div></body>
</html>

image-20231117151117988

2、给1000px视距,形成一种透视的效果。

.father{perspective: 1000px;}

image-20231117151217083

旋转

  • Z 轴:rotateZ()

    跟平面旋转的效果一样。

1681723549616

  • X 轴:rotateX()

1681723568598

  • Y 轴:rotateY()

1681723587974

左手法则

作用:根据旋转方向确定取值正负

使用:左手握住旋转轴, 拇指指向正值方向, 其他四个手指弯曲方向为旋转正值方向

1681723629410

rotate3d-了解

  • rotate3d(x, y, z, 角度度数) :用来设置自定义旋转轴的位置旋转的角度
  • x,y,z 取值为0-1之间的数字

立体呈现

作用:设置元素的子元素是位于 3D 空间中还是平面中

属性名:transform-style

属性值:

  • flat:子级处于平面中
  • preserve-3d:子级处于 3D 空间

1、先建立两个div盒子。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>立体呈现</title><style>.cube{width: 200px;height: 200px;margin: 100px auto;background-color: pink;transition: all 2s;}.cube div{width: 200px;height: 200px;}.front{background-color: orange;}.back{background-color: green;}</style></head><body><div class="cube"><div class="front">前面</div><div class="back">后面</div></div></body>
</html>

image-20231117160251803

2、给父元素添加transform-style: preserve-3d; ,并给子、父级定位。

.cube{position: relative;width: 200px;height: 200px;margin: 100px auto;background-color: pink;transition: all 2s;transform-style: preserve-3d;}.cube div{position: absolute;left: 0;top: 0;width: 200px;height: 200px;}

image-20231117160613868

3、给父级沿Y轴旋转89deg,为了让后面的操作更容易看。

transform: rotateY(89deg);

image-20231117160851520

4、把橙盒子向前移动100像素。

transform: translateZ(100px);

image-20231117161031783

5、把绿盒子向后移动100像素,并把背景颜色删除。

transform: translateZ(-100px);

image-20231117161446408

6、设置鼠标滑动效果,并把之前设置的旋转注释掉。就能看到一个立方体呈现在我们的眼前了。

.cube:hover{transform:rotateY(90deg);}

image-20231117161912368

案例-3d导航

1681723704637

案例步骤:

  1. 搭建立方体
    1. 绿色是立方体的前面
    2. 橙色是立方体的上面
  2. 鼠标悬停,立方体旋转

1681723746854

1681723827660

.nav li {position: relative;width: 100px;height: 40px;line-height: 40px;transition: all 0.5s;transform-style: preserve-3d;/* 为了看到橙色和绿色的移动过程,给立方体添加旋转 *//* transform: rotateX(-20deg) rotateY(30deg); */
}.nav li a {position: absolute;left: 0;top: 0;display: block;width: 100%;height: 100%;text-align: center;text-decoration: none;color: #fff;
}/* 立方体每个面都有独立的坐标轴,互不影响 */
.nav li a:first-child {background-color: green;transform: translateZ(20px);
}.nav li a:last-child {background-color: orange;transform: rotateX(90deg) translateZ(20px);
}.nav li:hover {transform: rotateX(-90deg);
}

1、初步建立六个a标签。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>3D导航</title><style>ul{margin: 0;padding: 0;list-style: none;}.nav{width: 300px;height: 40px;margin: 50px auto;}.nav ul{display: flex;}.nav li{width: 100px;height: 40px;line-height: 40px;transition: all 0.5s;}.nav li a{display: block;width: 100%;height: 100%;text-align: center;text-decoration: none;color: #fff;}.nav li a:first-child{background-color: green;}.nav li a:last-child{background-color: orange;}</style></head><body><div class="nav"><ul><li><a href="#">首页</a><a href="#">Index</a></li><li><a href="#">登录</a><a href="#">Login</a></li><li><a href="#">注册</a><a href="#">Register</a></li></ul></div></body>
</html>

image-20231117162909382

2、每个li中的两个a标签各是立方体的两个面,所以li就是立方体,所以先给li标签添加以下内容。

/* 为了更好看移动过程,给立方体加旋转 */transform: rotateX(-20deg) rotateY(30deg);}

image-20231117163627582

3、接下来以图片的形式介绍以下我们该走的流程。

image-20231117163450332

4、那么开始定位,子绝父相。并定位于左上角。

.nav li{position: relative;width: 100px;height: 40px;line-height: 40px;transition: all 0.5s;transform-style: preserve-3d;/* 为了更好看移动过程,给立方体加旋转 */transform: rotateX(-20deg) rotateY(30deg);}.nav li a{position: absolute;left: 0;top: 0;display: block;width: 100%;height: 100%;text-align: center;text-decoration: none;color: #fff;}

image-20231117163902366

5、橙色以x轴进行旋转,达到躺下来的目的。

.nav li a:last-child{background-color: orange;transform: rotateX(90deg);}

image-20231117164122498

6、转完之后,再把橙色向上抬。

transform: rotateX(90deg) translateZ(20px);

image-20231117164313191

7、同时把绿色的移到前面。

.nav li a:first-child{background-color: green;transform: translateZ(20px);}

image-20231117164532193

注:立方体每个面都有独立的坐标轴,互不影响。

8、沿X轴进行翻转。

.nav li:hover{transform: rotateX(-90deg);}

image-20231117165025870

9、在注销掉之前的转向,就可以实现该案例了。

image-20231117165139789

缩放

transform: scale3d(x, y, z);
transform: scaleX();
transform: scaleY();
transform: scaleZ();

如:在水平方向上缩放元素

transform: scaleX();

image-20231117165544035

在垂直方向上缩放元素

transform: scaleY();

image-20231117165610196

如在三维空间中缩放元素。它将元素的宽度和高度缩小到原来的一半,同时将深度(Z轴)放大两倍。

transform: scale3d(0.5,0.5,2);

image-20231117165801099

image-20231117165813299

02-动画

  • 过渡:实现两个状态间的变化过程
  • 动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)

动画实现步骤

  1. 定义动画

image-20231117170730042

/* 方式一 */
@keyframes 动画名称 {from {}to {}
}/* 方式二 */
@keyframes 动画名称 {0% {}10% {}......100% {}
}
  1. 使用动画
animation: 动画名称 动画花费时长;

1、建个盒子用于演示动画。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>体验动画</title><style>div{width: 100px;height: 100px;background-color: pink;}@keyframes change {0%{transform: translate(0);}100%{transform: translate(600px);}}</style></head><body><div></div></body>
</html>

image-20231117170353155

2、添加使用动画的代码,就可以看到粉色小方块划过去了。

animation: change 1s;

image-20231117170444466

animation复合属性

1681723979998

提示:

  • 动画名称和动画时长必须赋值
  • 取值不分先后顺序
  • 如果有两个时间值,第个时间表示动画时长,第个时间表示延迟时间

animation拆分写法

1681724035890

案例-走马灯

1681724053648

  • HTML 结构
<li><img src="./images/1.jpg" alt="" /></li>
<li><img src="./images/2.jpg" alt="" /></li>
<li><img src="./images/3.jpg" alt="" /></li>
<li><img src="./images/4.jpg" alt="" /></li>
<li><img src="./images/5.jpg" alt="" /></li>
<li><img src="./images/6.jpg" alt="" /></li>
<li><img src="./images/7.jpg" alt="" /></li>
<!-- 替身:填补显示区域的露白 -->
<li><img src="./images/1.jpg" alt="" /></li>
<li><img src="./images/2.jpg" alt="" /></li>
<li><img src="./images/3.jpg" alt="" /></li>
  • CSS 样式
.box {width: 600px;height: 112px;border: 5px solid #000;margin: 100px auto;overflow: hidden;
}.box ul {display: flex;animation: move 6s infinite linear;
}/* 定义位移动画;ul使用动画;鼠标悬停暂停动画 */
@keyframes move {0% {transform: translate(0);}100% {transform: translate(-1400px);}
}.box:hover ul {animation-play-state: paused;
}

无缝动画原理:复制开头图片到结尾位置(图片累加宽度 = 区域宽度)

1、插入六张照片,并把他们限制在框里。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>走马灯</title><style>*{padding: 0;margin: 0;}li{list-style: none;}img{display: block;width: 200px;}.box{width: 600px;height: 112px;border: 5px solid #000;margin: 100px auto;overflow: hidden;}</style></head><body><div class="box"><ul><li><img src="../img/1.jpg" alt=""/></li><li><img src="../img/2.jpg" alt=""/></li><li><img src="../img/3.jpg" alt=""/></li><li><img src="../img/4.jpg" alt=""/></li><li><img src="../img/5.jpg" alt=""/></li><li><img src="../img/6.jpg" alt=""/></li><li><img src="../img/7.jpg" alt=""/></li></ul></div></body>
</html>

image-20231118105200533

2、设计走马灯动画。从0向左边走马灯下去。

.box ul{display: flex;animation: move 6s;}
/* 定义位移动画:ul使用动画,鼠标悬停暂停动画 */@keyframes move {0%{transform: translate(0);}100%{transform: translate(-1400px);}	}

image-20231118105830504

image-20231118110122995

3、当运行到上图之后,发现第七张图走完后,还留一大片留白,此时我们就需要复制开头图片到结尾位置。(图片累加宽度 = 区域宽度)

<!-- 增加替身 --><li><img src="../img/1.jpg" alt=""/></li><li><img src="../img/2.jpg" alt=""/></li><li><img src="../img/3.jpg" alt=""/></li>

4、增加无限循环。

/* infinite 无限循环 */animation: move 6s infinite;

image-20231118111402728

5、增加匀速运动的效果。

/* infinite 无限循环  linear 匀速运动*/animation: move 6s infinite linear;

6、当鼠标悬停在.box元素上时,其子元素ul的动画播放状态为暂停。

.box:hover ul{animation-play-state: paused;}

精灵动画

  • 核心

1681724175321

  • 制作步骤

    1.准备显示区域

    盒子尺寸与一张精灵小图尺寸相同

    2.定义动画

    移动背景图(移动距离 = 精灵图宽度)

    3.使用动画

    steps(N),N 与精灵小图个数相同

div {width: 140px;height: 140px;border: 1px solid #000;background-image: url(./images/bg.png);animation: run 1s steps(12) infinite;
}@keyframes run {from {background-position: 0 0;}to {background-position: -1680px 0;}
}

1、把精灵图中的小人圈出来。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>精灵动画</title><style>div{width: 140px;height: 140px;border: 1px solid #000;background-image: url(../img/bg.png);}</style></head><body><div></div></body>
</html>

image-20231118112930969

2、增加动画效果。

div{width: 140px;height: 140px;border: 1px solid #000;background-image: url(../img/bg.png);animation: run 1s;}@keyframes run {from{background-position: 0 0;}to{background-position: -1680px 0;}}

image-20231118113154990

3、在这个动画上设计一些效果。具体来说,该动画在1秒内完成12步(每步持续1/12秒),并且无限循环播放。

div{width: 140px;height: 140px;border: 1px solid #000;background-image: url(../img/bg.png);animation: run 1s steps(12) infinite;}@keyframes run {from{background-position: 0 0;}to{background-position: -1680px 0;}}

image-20231118113549856

多组动画

animation: 动画一,动画二,... ...
;

1、给上面的动画增加一个新的方法,之间用逗号隔开:

@keyframes move {0%{transform: translate(0);}100%{transform: translate(800px);}}

image-20231118114112055

2、增加在动画结束后,停止在最后的动作上。

animation: run 1s steps(12) infinite,move 2s forwards;

image-20231118114138925

注:当动画的开始状态样式 跟 盒子默认样式相同,可以省略动画开始状态。

03-综合案例-全名出游

1681724426559

背景

/* 大背景 */
/* 默认状态HTML和body的高度是0,所以导致cover缩放背景图不成功 */
html {height: 100%;
}
body {height: 100%;background: url(../images/f1_1.jpg) no-repeat center 0 / cover;/* background-size: cover; */
}

注:由于默认状态下HTML和boby的高度是0,所以导致cover播放背景图不成功。

image-20231118161719192

云彩位置和动画

  • HTML 结构
<!-- 云 -->
<div class="cloud"><img src="./images/yun1.png" alt=""><img src="./images/yun2.png" alt=""><img src="./images/yun3.png" alt="">
</div>
  • CSS 样式
/* 云 */
.cloud img {position: absolute;left: 50%;
}.cloud img:nth-child(1) {margin-left: -250px;top: 20px;animation: cloud 1s infinite alternate linear;
}
.cloud img:nth-child(2) {margin-left: 400px;top: 100px;animation: cloud 1s infinite alternate linear 0.4s;
}
.cloud img:nth-child(3) {margin-left: -550px;top: 200px;animation: cloud 1s infinite alternate linear 0.6s;
}@keyframes cloud {100% {transform: translate(20px);}
}

1、将三朵云彩放在一起

 <!-- 云 --><div class="cloud"><img src="./images/yun1.png" alt=""><img src="./images/yun2.png" alt=""><img src="./images/yun3.png" alt=""></div>
/* 云 */
.cloud img{position: absolute;left: 50%;
}

image-20231118162113370

2、挪好第一块云彩。

.cloud img:nth-child(1){margin-left: -250px;margin-top: 20px;
}

image-20231118162516282

3、同样的道理对三片云彩进行修改。

.cloud img:nth-child(2){margin-left: 400px;margin-top: 100px;
}.cloud img:nth-child(3){margin-left: -550px;margin-top: 200px;
}

image-20231118162902519

4、定义一个移动方法,并给第一朵云去加入动画。

@keyframes cloud {100%{transform: translate(20px);}
}.cloud img:nth-child(1){margin-left: -250px;margin-top: 20px;animation: cloud 1s infinite alternate linear;
}

image-20231118163503912

5、给每一块云彩挪到它应该去的地方。

.cloud img:nth-child(1){margin-left: -250px;margin-top: 20px;animation: cloud 1s infinite alternate linear;
}.cloud img:nth-child(2){margin-left: 400px;margin-top: 100px;animation: cloud 1s infinite alternate linear 0.4s;
}.cloud img:nth-child(3){margin-left: -550px;margin-top: 200px;animation: cloud 1s infinite alternate linear 0.6s;
}

image-20231118163659449

热气球和气泡的动画

1.与上面近乎相似,只不过是垂直变化的动画了。加入热气球,只不过此时在网页的最左上角。

<!-- 热气球 --><div class="hotairballoon"><img src="./images/san.png" alt=""></div>

image-20231118164119331

2、大概定好了位置。

.hotairballoon img{margin-left: 350px;margin-top: 150px;
}

image-20231118164524406

3、完成上下动画。

.hotairballoon img{margin-left: 350px;margin-top: 150px;animation: hotballoon 1s infinite alternate linear;
}@keyframes hotballoon {100%{transform: translateY(50px);}
}

image-20231118164805647

4、接下来对那四个按钮进行设置,首先先把四张图片弄出来。

<!-- 地标 --><div class="landmark"><img src="./images/1.png" alt=""><img src="./images/2.png" alt=""><img src="./images/3.png" alt=""><img src="./images/4.png" alt=""></div>

image-20231118165104333

5、先调到一条正确的线上。

/* 地标 */
.landmark img{margin-top: 250px;
}

image-20231118165242836

6、调整好了方位。

/* 地标 */
.landmark img{position: absolute;margin-top: 250px;
}.landmark img:nth-child(1){margin-left: 225px;
}.landmark img:nth-child(2){margin-left: 485px;
}.landmark img:nth-child(3){margin-left: 750px;
}.landmark img:nth-child(4){margin-left: 1013px;
}

image-20231118170800960

7、动画可以继续延续上面热气球的动画,然后给每个地标的动画延迟时间等差数列,使产生波浪形效果。同时为了使动起来更好看,让顶部少了20边距,让图标不紧贴着轴进行运动。

/* 地标 */
.landmark img{position: absolute;margin-top: 230px;
}.landmark img:nth-child(1){margin-left: 225px;animation: hotballoon 1s infinite alternate linear 0.3s;
}.landmark img:nth-child(2){margin-left: 485px;animation: hotballoon 1s infinite alternate linear 0.5s;
}.landmark img:nth-child(3){margin-left: 750px;animation: hotballoon 1s infinite alternate linear 0.7s;
}.landmark img:nth-child(4){margin-left: 1013px;animation: hotballoon 1s infinite alternate linear 0.9s;
}

image-20231118171558514

文字动画

  • HTML 结构
<!-- 文字 -->
<div class="text"><img src="./images/font1.png" alt="">
</div>
  • CSS 样式
/* 文字 */
.text img {position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);animation: text 1s;
}/* 默认 → 小 → 大 → 小 → 默认 */
@keyframes text {0% {transform: translate(-50%, -50%) scale(1);}20% {transform: translate(-50%, -50%) scale(0.1);}40% {transform: translate(-50%, -50%) scale(1.4);}70% {transform: translate(-50%, -50%) scale(0.8);}100% {transform: translate(-50%, -50%) scale(1);}
}

1、文字定到正确的位置

 <!-- 文字 --><div class="text"><img src="./images/font1.png" alt=""></div>
/* 文字 */
.text img{position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);
}

image-20231118172547516

2、设计动画。

/* 文字 */
.text img{position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);animation: text 1s alternate;
}/* 默认 - 小 - 大 - 小 - 默认 */
@keyframes text {0%{transform: translate(-50%,-50%) scale(1);}30%{transform: translate(-50%,-50%) scale(0.5);}60%{transform: translate(-50%,-50%) scale(1.5);}90%{transform: translate(-50%,-50%) scale(0.8);}100%{transform: translate(-50%,-50%) scale(1);}
}

image-20231118173236081

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

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

相关文章

每天一道算法题(六)——返回一组数字中所有和为 0 且不重复的三元组

文章目录 前言1、问题2、示例3、解决方法4、效果5、注意点 前言 注意&#xff1a;答案中不可以包含重复的三元组。 1、问题 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] n…

WMS仓库管理系统库位分配规划

分配说明 每个商品必须至少有一个分拣位&#xff08;整箱或拆零均可&#xff09;如果只设了拆零分拣位&#xff0c;则入库不分配存储位&#xff0c;只上拆零分拣位&#xff0c;对于DPS分拣商品是一品固定一个货位&#xff0c;对于RF分拣商品是动态分配货位&#xff0c;一个商品…

记录我常用的免费API接口

目录 1.随机中英文句子 2.随机中英文句子&#xff08;带图片和音频&#xff09; 3.随机一句诗 4.随机一句话 5.随机一句情话 6. 随机一句舔狗语录 7.历史上的今天 8.获取来访者ip地址 9&#xff1a;获取手机号信息 10. 垃圾分类查询 11.字典查询 12.QQ信息查询 1.随…

Mybatis-Plus《学习笔记 22版尚硅谷 》——感谢【尚硅谷】官方文档

Mybatis-Plus《学习笔记 22版尚硅谷 》 一、MyBatis-Plus1.简介2.特性3.支持数据库4.框架结构5.官方地址 二、入门案例1.开发环境2.建库建表3.创建工程4.配置编码5.测试查询 三、增删改查1.BaseMapper<T>2.调用Mapper层实现CRUD2.1 插入2.2 删除a、根据ID删除数据b、根据…

Node.js之TCP(net)

Hi I’m Shendi Node.js之TCP&#xff08;net&#xff09; 最近使用Nodejs编写程序&#xff0c;需要用到自己编写的分布式工具&#xff0c;于是需要将Java版的用NodeJs重新写一遍&#xff0c;需要使用到TCP通信&#xff0c;于是在这里记录下Node.js TCP 的使用方法 依赖 需要使…

【Python进阶】近200页md文档14大体系知识点,第4篇:linux命令和vim使用

本文从14大模块展示了python高级用的应用。分别有Linux命令&#xff0c;多任务编程、网络编程、Http协议和静态Web编程、htmlcss、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。 全套Python进阶笔记地址…

黑马程序员 计算机网络(笔记)

参考文章&#xff1a;【黑马程序员】计算机网络概述~ 程序员必须掌握的入门基础知识&#xff01; 参考文章&#xff1a;黑马程序员Linux运维工作场景解决方案零基础到就业 参考文章&#xff1a;网络安全运维进阶教程&#xff0c;运维工程师深度学习教程 文章目录 linux入门到…

Jenkinsfile+Dockerfile前端vue自动化部署

前言 本篇主要介绍如何自动化部署前端vue项目 其中&#xff0c;有两种方案&#xff1a; 第一种是利用nginx进行静态资源转发&#xff1b;第二种方案是利用nodejs进行启动访问&#xff1b; 各个组件版本如下&#xff1a; Docker 最新版本&#xff1b;Jenkins 2.387.3nginx …

基于STC12C5A60S2系列1T 8051单片的模数芯片ADC0809实现模数转换应用

基于STC12C5A60S2系列1T 8051单片的模数芯片ADC0809实现模数转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍模数芯片ADC0809介绍通过模数芯片ADC0809把电压模…

Flutter笔记:拖拽手势

Flutter笔记 拖拽手势 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134485123 目 录 1. 概述2. 垂直拖…

Adobe Illustrator——原创设计的宝藏软件

今天&#xff0c;我们来谈谈一款在Adobe系列中曾经多次给大家都提到的原创性极强的设计理念丰富的矢量图形编辑软件——Adobe Illustrator。 Adobe Illustrator&#xff0c;其定位是一款与Photoshop相类似对矢量图形进行编辑的软件。 Adobe Illustrator&#xff0c;作为全球最著…

【自然语言处理】【大模型】赋予大模型使用工具的能力:Toolformer与ART

赋予大模型使用工具的能力&#xff1a;Toolformer与ART ​ 本文介绍两种赋予大模型使用外部工具能力的方法&#xff1a;Toolformer和ART。 Toolformer论文地址&#xff1a;https://arxiv.org/pdf/2302.04761.pdf ART论文地址&#xff1a;https://arxiv.org/pdf/2303.09014.pd…

学习网络编程No.10【深入学习HTTPS】

引言&#xff1a; 北京时间&#xff1a;2023/11/14/18:45&#xff0c;因为种种原因&#xff0c;上个月的文章昨天才更新&#xff0c;目前处于刷题前夕&#xff0c;算法课在看了。这次和以前不一样&#xff0c;因为以前对知识框架没有很好的理念&#xff0c;并不清楚相关知识要…

三天吃透Redis面试八股文

目录&#xff1a; Redis是什么&#xff1f;Redis优缺点&#xff1f;Redis为什么这么快&#xff1f;讲讲Redis的线程模型&#xff1f;Redis应用场景有哪些&#xff1f;Memcached和Redis的区别&#xff1f;为什么要用 Redis 而不用 map/guava 做缓存?Redis 数据类型有哪些&…

环境配置|GitHub——解决Github无法显示图片以及README无法显示图片

一、问题背景 最近在整理之前写过的实验、项目&#xff0c;打算把这些东西写成blog&#xff0c;并把工程文件整理上传到Github上。但在上传README文件的时候&#xff0c;发现github无法显示README中的图片&#xff0c;如下图所示&#xff1a; 在README中该图片路径为&#xff1…

Flutter笔记:缩放手势

Flutter笔记 缩放手势 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134485138 目 录 1. 概述2. 缩放手…

FlinkCDC数据实时同步Mysql到ES

考大家一个问题&#xff0c;如果想要把数据库的数据同步到别的地方,比如es,mongodb,大家会采用哪些方案呢&#xff1f; ::: 定时扫描同步&#xff1f; 实时日志同步? 定时同步是一个很好的方案&#xff0c;比较简单&#xff0c;但是如果对实时要求比较高的话&#xff0c;定…

【开源】基于Vue.js的智能教学资源库系统

项目编号&#xff1a; S 050 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S050&#xff0c;文末获取源码。} 项目编号&#xff1a;S050&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…

quinn源码解析:QUIC数据包是如何发送的

quinn源码解析&#xff1a;QUIC数据包是如何发送的 简介QUIC协议中的概念endpoint&#xff08;端点&#xff09;connection&#xff08;连接&#xff09;Stream&#xff08;流&#xff09;Frame (帧) 发包过程解析SendStream::write_allConnectionDriverEndpointDriver 简介 q…

R语言和RStudio的下载安装(非常简便舒适)

目录 R语言和RStudio的关系R语言和Tableau下载R语言进入官网选择清华镜像源Download R for Windows选择base版本开始下载进行安装配置环境变量检查是否安装成功 下载RStudio进入官网点击下载进行安装检查是否安装成功打开选择R语言环境成功打开显示四个工作区 R语言和RStudio的…