CSS元素动画篇:基于当前位置的变换动画(二)

基于当前位置的变换动画(二)

  • 前言
  • 旋转效果类元素动画
    • 摇摆动画效果
      • 效果预览
      • 代码实现
    • 摇晃动画效果
      • 效果预览
      • 代码实现
    • 螺旋旋转
      • 效果预览
      • 代码实现
  • 结语

前言

CSS元素动画一般分为两种:一种是元素基于当前位置的变换动画,通过不明显的位移、缩放等方式,实现动画效果,如弹跳、闪烁、抖动等;另一种是元素基于页面位置的变换动画,通过位移、旋转等方式,实现动画效果,如飞入/飞出等。
基于当前位置的变换动画,我又将根据动画实现效果将其分为4类:

  1. 位移效果类:通过不明显的位移,实现元素动画效果,如:水平抖动、垂直抖动等。
  2. 旋转效果类:通过小幅度旋转,实现元素动画效果,如元素摇摆、摇晃等。
  3. 缩放效果类:通过缩放,实现元素动画效果,如脉冲效果、呼吸效果、心跳效果等。
  4. 透明度效果类:通过改变元素透明度,实现元素动画效果,如闪烁效果。

在上一篇文章中,我们介绍了 位移效果类的相关元素动画效果与代码实现 ,本篇文章将介绍旋转效果类的相关元素动画效果与代码实现。

旋转效果类元素动画

摇摆动画效果

摇摆动画效果:通过旋转元素模拟钟摆的摇摆效果,其效果图如下所示:

效果预览

摇摆动画

代码实现

<style>
/* 摇摆动画效果 */
@keyframes swing {/* 元素开始和结束位置不变 */0%,100% {transform: rotate(0deg);}/* 左右交替旋转,旋转角度逐渐变小 */20% {transform: rotate(15deg);}40% {transform: rotate(-10deg);}60% {transform: rotate(5deg);}80% {transform: rotate(-5deg);}
}
.swing {display: inline-block;height: 100px;font-size: 100px;font-weight: bold;
}
.swing:hover {animation: swing 1s 1 ease-in-out;
}
</style><body><span class="swing">摇摆动画</span>
</body>

摇晃动画效果

摇晃动画效果:通过位移和旋转组合,模拟摇晃效果,其效果图如下所示:

效果预览

摇摆动画

代码实现

<style>
/* 摇晃动画效果 */
@keyframes wobble {/* 元素开始和结束位置不变 */0%, 100% {transform: translate(0, 0);}/* 左右交替旋转,角度逐渐变小 */15% {transform: translateX(-25%) rotateX( -5deg);}30% {transform: translateX(20%) rotateX( 3deg);}45% {transform: translateX(-15%) rotateX(-3deg);}60% {transform: translateX(10%) rotateX( 2deg);}75% {transform: translateX(-5%) rotateX(-1deg);}
}
.wobble {display: inline-block;height: 100px;font-size: 100px;font-weight: bold;
}
.wobble:hover {animation: wobble 1s 1 ease-in-out;
}
</style><body><span class="wobble">摇晃动画</span>
</body>

螺旋旋转

螺旋旋转效果:元素360°旋转并缩放,创建出动态的螺旋运动,其效果图如下所示:

效果预览

螺旋旋转

代码实现

<style>
/* 螺旋旋转效果 */
@keyframes spiral {0% {transform: rotate(0deg) scale(1);}50% {transform: rotate(180deg) scale(0.5);}100% {transform: rotate(360deg) scale(1);}
}
.spiral {padding: 100px 200px;display: inline-block;height: 100px;font-size: 100px;font-weight: bold;
}
.spiral:hover {animation: spiral 2s linear 1;
}
</style><body><span class="spiral">螺旋旋转</span>
</body>

结语

本文主要介绍了几种常见的旋转效果类元素动画,你还知道哪些旋转效果类元素动画?欢迎在评论区留言分享!

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

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

相关文章

Qt/C++开发监控GB28181系统/设备注册/设备注销/密码认证/心跳保活/校时

一、前言 根据gb28181协议文档&#xff0c;第一步就是需要实现设备的注册&#xff0c;和onvif不同&#xff0c;gb是反过来的&#xff0c;设备端主动连接服务端&#xff0c;而onvif是服务端主动发出搜索&#xff0c;设备被动应答&#xff0c;包括后续的交互几乎都是被动应答&am…

MATLAB 中的图形绘制

一、线图 plot 函数用来创建x和y值的简单线图。 x 0 : 0.05 : 30; %从0到30&#xff0c;每隔0.05取一次值 y sin(x); plot(x,y,LineWidth,2) %若&#xff08;x&#xff0c;y&#xff0c;LineWidth&#xff0c;2&#xff09;可变粗 xlabel("横轴标题") ylab…

go语言八股文(五)

1.go的局部变量是分配在栈上还是在堆上 在Go语言中&#xff0c;局部变量的内存分配&#xff08;栈或堆&#xff09;由编译器基于逃逸分析&#xff08;escape analysis&#xff09;来决定。以下是总结和具体示例&#xff1a; 栈上分配 当局部变量的生命周期严格限定在函数作用…

Gradients of Matrix-Matrix Multiplication in Deep Learning

Gradients of Matrix-Matrix Multiplication in Deep Learning 1. Matrix multiplication2. Derivation of the gradients2.1. Dimensions of the gradients2.2. The chain rule2.3. Derivation of the gradient ∂ L ∂ A \frac{ {\partial L} }{ {\partial \boldsymbol {\bo…

Spring Boot 框架简介

✨ Spring Boot 框架简介 1️⃣ &#x1f680; 快速构建 Spring Boot 能够快速构建可直接运行的、企业级 Spring 应用。 2️⃣ ⚙️ “约定优于配置” 该框架采用"约定优于配置"理念&#xff0c;默认集成 Spring 平台与主流第三方库&#xff0c;开发者仅需简单配置…

【Robocorp实战指南】Python驱动的开源RPA框架

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1&#xff1a;网页数据抓取案例2&#xff1a;Excel报表生成 运行结果验证 三、性能对比测试方…

如何使用 Spring Boot 实现分页和排序:配置与实践指南

在现代 Web 应用开发中&#xff0c;分页和排序是处理大量数据时提升用户体验和系统性能的关键功能。Spring Boot 结合 Spring Data JPA 提供了简单而强大的工具&#xff0c;用于实现数据的分页查询和动态排序&#xff0c;广泛应用于 RESTful API、后台管理系统等场景。2025 年&…

使用 LLM助手进行 Python 数据可视化

在数据科学中&#xff0c;数据可视化是一项至关重要的任务&#xff0c;旨在揭示数据背后的模式和洞察&#xff0c;并向观众传达这些信息。然而&#xff0c;在编程语言&#xff08;如 Python&#xff09;中创建有洞察力的图表有时可能会耗时且复杂。本文介绍了一种借助 AI 助手&…

RASP技术是应用程序安全的“保护伞”

对于企业组织而言&#xff0c;随着新技术的不断涌现&#xff0c;企业在应用程序和数据安全方面也面临着诸多挑战。之所以如此&#xff0c;是因为常见的保护措施&#xff0c;如入侵防御系统和Web应用程序防火墙&#xff0c;有助于检测和阻止网络层的攻击&#xff0c;但它们无法看…

安卓基础(接口interface)

​​1. 接口的定义与实现​​ ​​(1) 定义接口​​ // 定义一个 "动物行为" 的接口 public interface Animal {void eat(); // 抽象方法&#xff08;无实现&#xff09;void sleep(); // 抽象方法&#xff08;无实现&#xff09;// Java 8 默认方法&#…

Linux0.11内存管理:相关代码

ch13_2 源码分析 boot/head.s 页表初始化&#xff1a; 目标&#xff1a;初始化分页机制&#xff0c;将线性地址空间映射到物理内存&#xff08;前 16MB&#xff09;&#xff0c;为保护模式下的内存管理做准备。核心流程 分配页目录表和页表的物理内存空间&#xff08;通过 .…

【Redis】set类型

目录 1、介绍2、底层实现【1】整数集合【2】哈希表 3、常用指令 1、介绍 Redis的set集合类型是一种无序且元素唯一的数据结构&#xff0c;支持高效的成员判断、集合运算和随机访问。 2、底层实现 【1】整数集合 适用场景 当集合中所有的元素都是整数&#xff0c;且元素数量…

web技术与nginx网站环境部署

一&#xff1a;web基础 1.域名和DNS 1.1域名的概念 网络是基于TCP/IP协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的IP地址)&#xff0c;用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相连的网络和主机时&#xff0c;均采用一种唯一、通用的地址…

LeetCode【剑指offer】系列(动态规划篇)

剑指offer10-I.斐波那契数列 题目链接 题目&#xff1a;斐波那契数&#xff08;通常用F(n)表示&#xff09;形成的序列称为斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(…

JVM 内存分配策略

引言 在 Java 虚拟机&#xff08;JVM&#xff09;中&#xff0c;内存分配与垃圾回收是影响程序性能的核心机制。内存分配的高效性直接决定了对象创建的速率&#xff0c;而垃圾回收策略则决定了内存的利用率以及系统的稳定性。为了在复杂多变的应用场景中实现高效的内存管理&am…

【二分查找】寻找峰值(medium)

6. 寻找峰值&#xff08;medium&#xff09; 题⽬描述&#xff1a;解法⼆&#xff08;⼆分查找算法&#xff09;&#xff1a;算法思路&#xff1a;C 算法代码&#xff1a;Java 算法代码&#xff1a; 题⽬链接&#xff1a;162. 寻找峰值 题⽬描述&#xff1a; 峰值元素是指其值…

MongoDB与PHP7的集成与优化

MongoDB与PHP7的集成与优化 引言 随着互联网技术的飞速发展,数据库技术在现代软件开发中扮演着越来越重要的角色。MongoDB作为一种流行的NoSQL数据库,以其灵活的数据模型和强大的扩展性受到众多开发者的青睐。PHP7作为当前最流行的服务器端脚本语言之一,其性能和稳定性也得…

【GIT】github中的仓库如何删除?

你可以按照以下步骤删除 GitHub 上的仓库&#xff08;repository&#xff09;&#xff1a; &#x1f6a8; 注意事项&#xff1a; ❗️删除仓库是不可恢复的操作&#xff0c;所有代码、issue、pull request、release 等内容都会被永久删除。 &#x1f9ed; 删除 GitHub 仓库步骤…

焊接机排错

焊接机 一、前定位后焊接 两个机台&#xff0c;①极柱定位&#xff0c;相机定位所有极柱点和mark点&#xff1b;②焊接机&#xff0c;相机定位mark点原理&#xff1a;极柱定位在成功定位到所有极柱点和mark点后&#xff0c;可以建立mark点和极柱点的关系。焊接机定位到mark点…

认识和使用Vuex-案例

集中管理共享的数据&#xff0c;易于开发和后期维护&#xff1b;能够高效的实现组件之间的数据共享&#xff0c;提高开发效率&#xff1b;存储在Vuex的数据是响应式的&#xff0c;能够实时保持页面和数据的同步&#xff1b; 安装Vuex依赖包 npm install vuex --save导入包 im…