移动web网页开发——动画

article/2025/10/10 11:44:19

一、动画

1.1 动画

使用animation添加动画效果 

思考:过渡可以实现什么效果?

答:实现2个状态间的变化过程

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

  • 动画的本质是快速切换大量图片时在人脑中形成的具有连续性的画面
  • 构成动画的最小单元:帧或动画帧 

1.2 动画的实现步骤

实现步骤

1、定义动画

两个状态之间的变化:

@keyframes 动画名称 {from {}to {} 
}

 多个状态之间的变化:

@keyframes 动画名称 {/* 百分比指的是动画时长的百分比 */0% {}10% {}15% {}100% {}
}

 2、使用动画

animation:动画名称 动画花费时长;

 

 1.3 动画属性

animation: 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态;

注意:

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

速度曲线

linear: 匀速

steps(n):分步动画

 延迟时间

 重复次数

 动画方向alternate

带有反方向执行的效果

 执行完毕之后的状态

backwards:动画停留在最初的状态

forwards:动画停留在最后的状态

 animation复合属性的拆分属性(了解)

1.3 动画属性

使用steps实现逐帧动画配合精灵图的动画都是逐帧动画,其他的全是补间动画)

属性作用取值
animation-timing-function速度曲线steps(数字)

逐帧动画:帧动画。开发中,一般配合精灵图实现动画效果

animation-timing-function:steps(N); 将动画过程等分成N份

 精灵动画制作步骤

  • 准备显示区域
    • 设置盒子尺寸是精灵图中一张小图的尺寸,背景图为当前精灵图
  • 定义动画
    • 改变背景图的位置(移动的距离就是精灵图的宽度) 
  • 使用动画
    • 添加速度曲线steps(N),N与精灵图上小图的个数相同
    • 添加无限重复效果 

 

多组动画

思考:如果想让小人跑远一些,该如何实现?

答:精灵动画的同时添加盒子位移动画

animation:动画1,动画2,动画N
;
<style>.box {/* 1680/12:保证显示区域的尺寸和一个精灵小图的大小相等  */width: 140px;height: 140px;border: 1px solid #000;background-image: url(./images/bg.png);animation:move 1s steps(12) infinite,run 1s forwards;}@keyframes move {/* from {background-position: 0 0;} */to {background-position: -1680px 0;}}@keyframes run {/* 动画的开始状态和盒子的默认样式相同的,可以省略开始状态的代码 *//* from {transform: translateX(0);} */to {transform: translateX(800px);}}</style>
<body><div class="box"></div>
</body>

案例——走马灯

无缝动画

 原本是七张图片 小框中一次能显示三张图片 如果是保持七张图片的话,到了5、6、7张图片时,再向左移后面会露白,所以后面再补上1、2、3张图片 然后再从头播放

<style>* {padding: 0;margin: 0;}li {list-style: none;}img {width: 200px;}.box {width: 600px;height: 112px;border: 5px solid #000;margin: 100px auto;overflow: hidden;}.box ul {/* 十张图片的宽度 */width: 2000px;animation: move 5s infinite linear;}.box li {float: left;}@keyframes move {to {transform: translateX(-1400px);}}.box:hover ul {animation-play-state: paused;}</style><body><div class="box"><ul><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></ul></div>
</body>

 

 综合案例——全民出游记

注意点:

  • 设置网页背景大图片的时候,要将html和body的高度都设置为100%,浏览器默认高度是0
  • 因为背景图的大小不可能和浏览器大小正好,所以要适量设置背景图缩放background-size
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./css/index.css">
</head><body><div class="cloud"><img src="./images/yun1.png" alt=""><img src="./images/yun2.png" alt=""><img src="./images/yun3.png" alt=""></div><div class="ballon"><img src="./images/san.png" alt=""></div><div class="icon"><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>
</body></html>
* {margin: 0;padding: 0;
}
html {height: 100%;
}body {position: relative;height: 100%;background: url('../images/f1_1.jpg') no-repeat center 0;/* 缩放背景图 *//* 图片等比例缩放,当宽度或高度和盒子尺寸相等,图片就不再缩放 *//* background-size:contain; *//* 图片等比例缩放,图片完全覆盖到盒子,可能会导致图片显示不全 */background-size: cover;
}.cloud img {position: absolute;top: 0;left: 50%;animation: cloud 1s infinite alternate;
}.cloud img:nth-child(1) {top: 20px;margin-left: -300px;
}.cloud img:nth-child(2) {top: 100px;margin-left: 400px;animation: cloud 1s infinite alternate .2s;
}.cloud img:nth-child(3) {top: 200px;margin-left: -550px;animation: cloud 1s infinite alternate .3s;
}@keyframes cloud {to {transform: translateX(20px);}
}.ballon img {position: absolute;top: 150px;left: 406px;animation: ballon 1s infinite alternate;
}@keyframes ballon {to {transform: translateY(-20px);}
}.icon img {position: absolute;top: 503px;left: 50%;animation: icon 1s infinite alternate;
}.icon img:nth-child(1) {margin-left: 45px;
}.icon img:nth-child(2) {margin-left: -194px;animation: icon 1s infinite alternate .2s;
}.icon img:nth-child(3) {margin-left: -432px;animation: icon 1s infinite alternate .3s;
}.icon img:nth-child(4) {margin-left: 283px;animation: icon 1s infinite alternate .5s;
}@keyframes icon {to {transform: translateY(-20px);}
}


http://chatgpt.dhexx.cn/article/LpfJUWfy.shtml

相关文章

移动web学习总结

最近学习了些移动web开发的基础知识&#xff0c;稍微做下记录总结&#xff1a; Hello,移动web&#xff1a; https://www.imooc.com/learn/494 一、基础知识 1. 关于Pixel px : CSS px&#xff0c;逻辑像素&#xff0c;浏览器使用的抽象单位dp&#xff0c;pt&#xff1a; dev…

02-移动WEB

网站 favicon 图标 制作 favicon 图标 把图标切成 png 图片 把 png 图片转换为 ico 图标 , 借助第三方平台转换网站 如 https://www.bitbug.net/ favicon 图标放到网站根目录下 HTML 页面引入 favicon 图标 . <link rel"shortcut icon" href"/favicon.ic…

移动web(看这一篇就够了)

文章目录 移动web第一天&#x1f525;今日学习目标字体图标1、字体图标的使用2、购物车案例3、上传SVG矢量图 平面转换1、平面转换概念2、平面转换之位移3、平面转换之旋转4、平面转换之缩放 渐变 移动web第二天&#x1f525;今日学习目标2、透视效果3、空间转换之旋转4、立体呈…

移动web简介

什么是移动web 移动web就是在手机浏览器里面访问的web页面&#xff0c;除了一般的手机浏览器之外&#xff0c;好友一些程序内置的浏览器访问的页面也称之为移动web&#xff0c;例如微信公众号、小程序中的webview访问的页面等。 移动web与PCweb的区别 页面大小不一样。手机页…

什么是web移动端-移动端布局特点

文章目录 前言一、web移动端是什么&#xff1f;二、如何调试移动web网页1.真机调试&#xff1a;2.chrome浏览器调试&#xff1a;3.移动Web的发展历史 三.移动Web布局核心思想1.不允许网页出现横向滚动2.页面盛满屏幕&#xff0c;盒子宽度与屏幕一致 100%3.让盒子的内容宽高widt…

几种java结构图

集合类 IO流 线程池的加载 类与对象的关系 JVM springboot注解

java学习各种实用结构图

spring boot路线图 线程池 网络结构模型

Java基础知识结构图

目前还没有总结完&#xff0c;之后会慢慢进行补充&#xff01;

VGG16详细实现(笨办法)

一、 VGG16简介 VGG16网络是通过卷积和全连接的方式提取图片特征&#xff0c;进行识别一种网络结构。曾在某年取得分类第二&#xff0c;定位任务第一的佳绩。其结构包含&#xff1a; 13个卷积层 3个全连接层&#xff0c;所以被称为VGG16,如下图绿色的部分即是网络的结构组成&…

(Java实现)图片合成GIF动图(“复古”Swing界面)

1、项目简介 项目名称&#xff1a;pic2gif项目实现&#xff1a;将选定的几张图片(支持jpg&#xff0c;png&#xff0c;bmp&#xff0c;gif等) 合成为一张gif图关键字&#xff1a;图片处理&#xff0c;Java&#xff0c;Swing 2、项目结构 图片处理部分Swing界面部分 (u1s1, S…

图解 JVM 内存结构

文章目录 JVM 内存结构JVM包含哪几部分&#xff1f;在内存中 java 代码的执行的流程Java内存分布&#xff1a;各组件详细说明1. 程序计数器2. Java虚拟机栈3. 本地方法栈4. Java堆5. 方法区6. 运行时常量池7. 直接内存 总结问题那些区域会发生内存溢出&#xff1f;类存放在哪里…

JVM8基础结构图理解

目录 1 理解DOS里面的java命令 2 JVM内存 2.1 JVM主要组成部分 2.2 JVM内存(运行时数据区域) 2.2.1 虚拟机内存与本地内存区别 2.2.2 JVM内存(运行时数据区域)中的JVM内存 2.2.3 程序计数器(Program Counter Register) 2.2.4 虚拟机栈(JVM Stacks) 2.2.5 本地方法栈(N…

java绘制(可视化)树结构图

以JPanel组件为画板&#xff0c;继承JPanel类并重写paint(Graphics g)函数&#xff0c;在函数中使用画笔g绘制树结构图。 实例代码——3个java源文件&#xff1a;Main.java、DrawNode.java、DrawTree.java 1、Main.java package drawTree;public class Main {public static …

Java的理论知识以及结构图

Java基础 1、 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目&#xff0c;其原先目的是&#xff1a;为家用消费电子产品发送一个信息的分布式代码系统&#xff0c;通过发送信息控制电视机、冰箱等 2、 简单写出Java特点&#xff0c;写出5个以上&#xff0c;越多越好…

Swagger使用教程及Swagger增强工具knife4j

标题 课外知识须知什么是swagger什么是RESTful 面向资源URI和URL区别&#xff1a; 博址推荐SpringBoot集成SwaggerSwagger常用注解Swagger增强工具knife4j 重点掌握&#xff1a;编写swagger的配置文件&#xff0c;理解每个配置的作用 课外知识须知 Swagger官网&#xff1a; …

JVM快速入门(类加载,对象创建,运行数据区,GC垃圾回收算法,jvm调优)

JVM快速入门 JVM定义&#xff1a;常见的几种jvmJDK&#xff0c;JRE&#xff0c;JVM区别 类加载过程类加载器作用加载器分类双亲委派机制好处 全盘委托机制 对象的创建流程类加载校验分配内存设置初值设置对象头对象头中的Mark Word 字段&#xff08;32位&#xff09;对象头中的…

一起学JVM(GC可视化工具Visual GC)

导读 众所周知&#xff0c;JVM&#xff08;java虚拟机&#xff09;运行着我们的java程序。java本身提供了自带工具VisualVM来帮助我们查看JVM的运行情况&#xff0c;下面主要介绍GC的可视化插件&#xff0d;Visual GC java版本 1.8.0_281 工具 VisualVM 的 Visual GC 插…

JVM G1详解

java程序性能 当我们调优java程序时&#xff0c;通常的目标有两个&#xff1a; 响应能力 或者 吞吐量 响应能力 响应能力指一个程序或者系统对请求的是否能够及时响应。 比如&#xff1a; 一个桌面UI能多快的响应一个事件&#xff1b; 一个网站能够多快返回一个页面请求&…

最简单的JVM内存结构图

目录 JVM内存结构图 方法区 堆 栈 程序计数器 本地方法栈 直接内存 内存分配性能优化-逃逸分析 总结 JVM内存结构图 大家好&#xff0c;好几天没有更新了&#xff0c;今天的内容有点多&#xff0c;我们详细介绍下JVM内部结构图&#xff0c;还是和之前一样&#xff0c;案…

JVM进阶(十一):JAVA G1收集器

文章目录 一、前言 一、前言 G1(Garbage First)垃圾收集器是当今垃圾回收技术最前沿的成果之一。早在JDK7就已加入JVM的收集器大家庭中&#xff0c;成为HotSpot重点发展的垃圾回收技术。同优秀的CMS垃圾回收器一样&#xff0c;G1也是关注最小时延的垃圾回收器&#xff0c;也同…