web前端进阶之一些动画

news2024/12/23 10:10:38

1.字体图标的基本使用

首先下载iconfont文件夹,用link标签引入,使用如下:

<i class="iconfont icon-favorites-fill green"></i>
//改样式的话使用iconfont或者使用 .green(自己设置的类名)
.iconfont {font-size: 60px;
 } 

2.在一个元素悬停,改变另一个元素的样式

.father:hover .son {/* translate(水平,垂直) *//* transform: translate(100px, 50px); *//* 百分比:子盒子自身尺寸的百分比---200px,50px *//* transform: translate(100%, 50%); *//* transform: translateY(100px); */
} 

3.css3动画之 transform-变换

(1)transform空间转换–旋转效果实现[包括边走边转]

translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动

 /* 顺时针 */
transform: rotate(360deg);
transform: rotateZ(360deg);
/*这两个效果一样,都是围绕中心点,因为中心点也是Z轴的中心点*/

/*逆时针*/
transform: rotate(-360deg);

/* 边走边转 */
transform: translate(600px) rotate(360deg);/* 不行----旋转可以改变坐标轴向 *//* transform: rotate(360deg) translate(600px); *//* 层叠性---不行,效果会覆盖 *//* transform: translate(600px);transform: rotate(360deg); */ 

(2)目标:使用transform属性实现元素在空间内的位移、旋转、缩放等效果

  • 空间:是从坐标轴角度定义的。x y z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同
  • 空间转换也叫3D转换

语法:

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

取值(正负均可)

  • 像素单位数值
  • 百分比

默认情况下,无法观察到z轴位移效果,要使用perspective属性实现透视效果,近大远小,近清楚远模糊。

把这个属性添加给父级:perspective: 1000px;> 数值一般在800-1200

绕x轴进行空间旋转:

.box { /* 透视效果:近大远小,近实远虚 */ perspective: 1000px;
}
.box img:hover { transform: rotateX(60deg); transform: rotateX(-60deg);
} 

4.空间转换–立体呈现

使用transform-style: preserve-3d;呈现立体图形

思考:使用perspective透视属性能否呈现立体图形?答:不能,因为perspective只能增加近大远小,近实远虚的视觉效果。

实现方法:

  • 添加transform-style: preserve-3d;加在父级身上
  • 使子元素处于真正的3d空间
  • 默认值为flat,表示子元素处于2D平面内呈现

5.css3动画之 transition:过渡

transition的作用是:平滑的改变CSS的值。

  • transition是一次性的,不能重复发生,除非一再触发。
  • transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态,只能完成两个值之间的变化

tansition是一个简写属性,分别包含以下几个属性:

transition-property

指定过渡的性质,比如transition-property:backgrond 就是指backgound参与这个过渡。

有以下几个属性值:

  • none:没有过渡动画
  • all:默认值。 所有可被动画的属性都表现出过度动画。
  • 属性名称,如width,background

transition-duration

以秒或毫秒为单位指定过渡动画所需的时间。默认值为 0s ,表示不出现过渡动画。

可以指定多个时长,每个时长会被应用到由 transition-property 指定的对应属性上。如果指定的时长个数小于属性个数,那么时长列表会重复。如果时长列表更长,那么该列表会被裁减。两种情况下,属性列表都保持不变。

transition-timing-function

用来描述整个transition变化过程中的变化速度。

其实是通过timing-function来描述这条加速曲线的。有ease | linear | ease-in | ease-out | ease-in-out | linear | cubic-bezier等值。

默认为ease。

transition-delay

延迟开始过渡的时间。

值以秒(s)或毫秒(ms)为单位,表明动画过渡效果将在何时开始。取值为正时会延迟一段时间来响应过渡效果;取值为负时会导致过渡立即开始。

一般都是将以上所有属性合并在transition属性中写。

.trans {transition: background-color 0.3s ease;
}
.trans:hover {background-color: #486AAA;color: #fff;
} 

一条属性中可以分别指定多个属性,以逗号分隔。

img{transition: 1s height, 1s width;
} 

这样height和width的变化是同时进行的。若想让height先变化width后变化,只需给width加一个delay time:

img{transition: 1s height, 1s 1s width;
} 

注意:在transition属性中,各个值的书写顺序很重要,尤其是transition-duration和transition-delay:第一个值是transition-duration的时间值,第二个值是transition-delay的时间值。

6.css3动画之 animation-动画

过渡实现的效果是:实现2个状态间的变化过程。使用animation添加动画效果:实现多个状态之间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)。

实现步骤:1.定义动画

/*定义动画:从200变大到600 */
 @keyframes change { from {width: 200px; } to {width: 600px; }
} 
/* 定义动画:200 到 500*300 到 800*500 */
/* 百分比指的是动画总时长的占比 */
@keyframes change {0% {width: 200px;}50% {width: 500px;height: 300px;}100% {width: 800px;height: 500px;}
} 

2.使用动画

 /* 使用动画 */
animation: change 1s; //动画名称 动画时间 
动画属性
  • 动画名称和动画时长必须赋值
  • 取值不分先后顺序
  • 如果有两个时间值,第一个时间表示动画时长,第二个时间表示延长时间
 /* 速度曲线:加速 减速 匀速linear *//* animation: change 1s linear; *//* 分步动画,分成三步,一节一节的完成 *//* animation: change 1s steps(3); *//*延迟1s,重复3次播放 *//* animation: change 1s steps(3) 1s 3; *//* 无限循环alternate:200-600-200 有返回的动画*//* animation: change 1s infinite alternate; *//* 默认值, 动画停留在最初的状态 *//* animation: change 1s backwards; *//* 动画停留在结束状态 */animation: change 1s forwards; 

目标:使用setps实现逐帧动画在使用精灵图的时候使用的是逐帧动画,其余都是用补间动画(流畅的变化)。

7.css3之transform-origin属性

transform-origin用于设置动画的基点(中心点) , 适用于所有块级元素及某些内联元素。

必须配合transform使用默认情况下,元素的动作参考点为元素盒子的中心

可以设置九个位置的值:水平方向:leftcenterright0 50% 100% 垂直方向:topcenter bottom

默认值:50% 50% ,相对于center center

两种写法,eg: transform-origin: left;  transform-origin:0; 

8.使用scale改变元素的尺寸

/* 要实现的效果:从中心点出发,向四周扩 */
/* transform: scale(x轴缩放倍数,y轴缩放倍数); 
但一般不这么写,因为要等比例缩放,如下*/
transform: scale(1.2); 

9.渐变背景

使用background-image属性实现渐变背景效果

  • 渐变是多个颜色逐渐变化的视觉效果
  • 一般用于设置盒子的背景
常用半透明渐变:透明 - rgba()
background-image: linear-gradient(transparent,//透明rgba(0,0,0, .6) //半透明...
); 

如何实现鼠标移到图片上出现渐变效果呢?

第一步:准备一个盒子,定位压在图片上面第二步:hover效果:显示渐变背景第三步:将盒子效果设置透明度为0第四步:hover结果设置透明度为1(这是结果)

<div class="box"><img src="./images/product.jpeg" alt="" /><div class="title">海量存储斩获2021 Interop金奖</div><!-- 渐变背景 mask --><div class="mask"></div>
</div>
//样式
.box {position: relative;
}
.box .mask {position: absolute;left: 0;top: 0;//隐藏渐变盒子opacity: 0;//和盒子大小一样width: 300px;height: 212px;//设置渐变background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.6));transition: all 0.5s;
}
.box:hover .mask2 {//hover结果:透明度为1,显示渐变背景opacity: 1;
} 

最后

最近找到一个VUE的文档,它将VUE的各个知识点进行了总结,整理成了《Vue 开发必须知道的36个技巧》。内容比较详实,对各个知识点的讲解也十分到位。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

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

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

相关文章

React.memo 和 useMemo 的使用

文章の目录问题背景useMemo 进行优化React.memo 进行优化props的值是基本类型props的值是引用类型写在最后问题背景 大家在使用 React 框架进行开发时一定遇到过以下问题&#xff1a; 当函数式组件中的某一状态改变&#xff0c;整个组件刷新&#xff0c;重新渲染在类组件中 s…

解决虚拟机下 “Linux和Windows之间复制粘贴” 的问题

大家在安装完虚拟机后&#xff0c;其实很多东西都还是要跟Windows打交道的&#xff0c;比如像Linux下某个软件的环境配置&#xff0c;你在Linux下遇到种种问题&#xff0c;这时你已习惯回到Windows下&#xff0c;默默的打开了“一亿名程序员都在用的CSDN平台”&#xff0c;找到…

腾讯疯狂招人,肝完自动化测试这关,20k+妥了

前言 对于程序员来说&#xff0c;BAT 为首的一线互联网公司肯定是自己的心仪对象&#xff0c;毕竟能到这些大厂工作&#xff0c;不仅薪资高待遇好&#xff0c;而且能力技术都能够得到提升&#xff0c;最关键的是还能够给自己镀上一层金&#xff0c;让人瞻仰。 最近很多同行群…

测试开发工程师到底是做什么的?

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

本地电脑搭建SFTP服务器,并实现公网访问

1. 搭建SFTP服务器 1.1 下载 freesshd 服务器软件 下载地址&#xff1a;freeSSHd and freeFTPd image_1gbuejept12741719ta61ubn8ej9.png-63.1kB 选择freeFTPD.exe下载 下载后&#xff0c;点击安装 image_1gbueks891c258ee2o315kmf9m.png-57.7kB 安装之后&#xff0c;它会提…

Reactor反应器模式

单线程Reactor反应器模式 在事件驱动模式中&#xff0c;当有事件触发时&#xff0c;事件源会将事件dispatch分发到handler处理器进行事件处理。反应器模式中的反应器角色&#xff0c;类似于事件驱动模式中的dispatcher事件分发器角色。 在反应器模式中&#xff0c;有Reactor反…

企业进行高质量数据管理,实施数据治理的关键是什么?

随着数据通过各种方式创造了巨大价值&#xff0c;各领域的企业开始不断挖掘数据的作用&#xff0c;数据的重要性得到了社会各界的共同认可。像我们熟知的数据治理、数据管理、数据标准以及数据资产都是因为数据地位不断提升&#xff0c;企业开始重视起数据全生命周期流程&#…

SpringBoot笔记(一)核心内容

官网&#xff1a;https://spring.io/projects/spring-boot Spring Boot可以轻松创建独立的、基于Spring的生产级应用程序&#xff0c;它可以让你“运行即可”。大多数Spring Boot应用程序只需要少量的Spring配置。 SpringBoot功能&#xff1a; 创建独立的Spring应用程序直接嵌…

2022.11.1 固体物理

Drude Model 原子由原子核和核外电子组成 我们首先看一下不同材料的自由电子密度 知道原子数目基本就知道了核外电子的数目 如果是单位体积内的&#xff0c;知道密度&#xff0c;我们就可以知道质量&#xff0c;根据摩尔质量和阿伏伽德罗常数&#xff0c;我们就可以知道原子…

网络层——IP协议

网络层 网络层概述 网络层主要考虑数据传输的路上问题&#xff0c;在复杂的网络环境中确定一个合适的路径。 网络层设计要尽量简单&#xff0c;向上层只提供简单灵活的、无连接的、不保证可靠性的数据报服务。网络层不提供服务质量的承诺&#xff01; IP 数据报的格式 如何分…

计算机网络---第四章网络层---ipv4---选择题

9# 1IPV4在第一个4B&#xff0c;5678位。当它为0101时&#xff0c;表示首部长度为5420B&#xff0c;这也是最常见的。当它为1111时&#xff0c;表示首部长度为15460B&#xff0c;此时加上了可选字段40B 2协议字段在第三个4B的9到16位&#xff0c;表示IP的上层协议&#xff0c;…

聚观早报 | 吉利汽车拟将极氪独立上市;比亚迪斥资近50亿元造船

今日要闻&#xff1a;吉利汽车拟将极氪独立上市&#xff1b;比亚迪斥资近50亿元造船&#xff1b;华硕开设首个AI智能工厂&#xff1b;升级款Mac将于明年3月推出&#xff1b;世界互联网大会将于11月9日举行吉利汽车拟将极氪独立上市 10 月 31 日消息&#xff0c;吉利汽车午间在港…

个人设计web前端大作业——HTML+CSS华为官网首页

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

【Java 数据结构】顺序表

篮球哥温馨提示&#xff1a;编程的同时不要忘记锻炼哦&#xff01;我们不过是普通人&#xff0c;只不过在彼此眼中闪闪发光 目录 1、什么是顺序表&#xff1f; 2、模拟实现ArrayList 2.1 模拟实现前的约定 2.2 构造方法 2.3 add方法 2.4 contains 方法 2.5 indexOf 方法…

Python量化初学者入门必备,如何入门Python量化交易?

前言 量化可以简单分为数据管理、策略分析和策略执行三个模块&#xff0c;数据是基础&#xff0c;策略分析是核心&#xff0c;其中策略自动化执行&#xff08;算法交易&#xff09;在国内由于政策限制实施起来比较麻烦。&#xff08;文末送福利&#xff09; 从Python的角度看…

Centos8.2编译安装Nginx

一、介绍 1、Nginx 简介 Nginx 是一个高性能的 HTTP 和反向代理 WEB 服务器&#xff0c;除它之外 Apache、Tomcat、Jetty、IIS&#xff0c;它们都是 WEB 服务器&#xff0c;或者叫做 WWW &#xff08;World Wide Web&#xff09;服务器&#xff0c;相应的也都具备 WEB 服务器的…

服务器的管理IIS 6.0

IIS 6.0 和 Windows Server 2003在网络应用服务器的管理、可用性、可靠性、安全性、性能与可扩展性方面提供了许多新的功能。IIS 6.0同样增强了网络应用的开发与国际性支持。IIS 6.0和 Windows Server 2003提供了最可靠的、高效的、连接的、完整的网络服务器解决方案。 中文名I…

Node.js | MongoDB 入门讲解 Mongoose 模块的初步应用

&#x1f5a5;️ NodeJS专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ 博主的前端之路&#xff08;源创征文一等奖作品&#xff09;&#xff1a;前端之行&#xff0c;任重道远&#xff08;来自大三学长的万字自述&#xff09; &#x1f5a5;️ TypeScript知识总结&…

【测试沉思录】10. 我们用到的3种Mock测试方案

欢迎订阅我的新专栏《现代命令行工具指南》&#xff0c;精讲目前最流行的开源命令行工具&#xff0c;大大提升你的工作效率。 作者&#xff1a;王媛媛 编辑&#xff1a;毕小烦 Mock 这个词对于测试人员来说并不陌生&#xff0c;当我们要测试的接口 A 依赖接口 B &#xff0c;可…

CSS3专题-[上篇]:过渡、2D转换、动画

目录 CSS3&#xff1a;前置特性 CSS3&#xff1a;盒子模型 CSS3&#xff1a;图片滤镜与模糊处理 blur()&#xff1a;高斯模糊 CSS3&#xff1a;计算盒子宽度calc()函数 CSS3&#xff1a;过渡效果 transition属性 2D转换&#xff1a;transform属性 translate()方法 * t…