20 太空漫游

news2024/9/22 3:36:40

效果演示

20-太空漫游.gif

实现了一个太空漫游的动画效果,其中包括火箭、星星和月亮。当鼠标悬停在卡片上时,太阳和星星会变成黄色,火箭会变成飞机,月亮会变成小型的月亮。整个效果非常炫酷,可以让人想起科幻电影中的太空漫游。

Code

  <div class="card">
      <div class="star star-1"></div>
      <div class="star star-2"></div>
      <div class="star star-3"></div>
      <div class="star star-4"></div>
      <div class="star star-5"></div>
      <div class="star star-6"></div>
      <div class="star star-7"></div>
      <div class="card-info">
          <span>To the moon!</span>
      </div>
      <svg class="moon" viewBox="0 0 20 20">
          <path
              d="M 10 9 z z M 7.007 6.552 c 0 -2.259 0.795 -4.33 2.117 -5.955 C 4.34 1.042 0.594 5.07 0.594 9.98 c 0 5.207 4.211 9.426 9.406 9.426 c 2.94 0 5.972 -1.354 7.696 -3.472 c -0.289 0.026 -0.987 0.044 -1.283 0.044 C 11.219 15.979 7.007 11.759 7.007 6.552 z">
          </path>
      </svg>
      <svg class="rocket" viewBox="48.0129 48.1783 416 415.6">
          <path
              d="M461.81,53.81a4.4,4.4,0,0,0-3.3-3.39c-54.38-13.3-180,34.09-248.13,102.17a294.9,294.9,0,0,0-33.09,39.08c-21-1.9-42-.3-59.88,7.5-50.49,22.2-65.18,80.18-69.28,105.07a9,9,0,0,0,9.8,10.4l81.07-8.9a180.29,180.29,0,0,0,1.1,18.3,18.15,18.15,0,0,0,5.3,11.09l31.39,31.39a18.15,18.15,0,0,0,11.1,5.3,179.91,179.91,0,0,0,18.19,1.1l-8.89,81a9,9,0,0,0,10.39,9.79c24.9-4,83-18.69,105.07-69.17,7.8-17.9,9.4-38.79,7.6-59.69a293.91,293.91,0,0,0,39.19-33.09C427.82,233.76,474.91,110.9,461.81,53.81ZM298.66,213.67a42.7,42.7,0,1,1,60.38,0A42.65,42.65,0,0,1,298.66,213.67Z">
          </path>
      </svg>

  </div>
body {
    height: 100vh; /* 设置body的高度为视口高度的100% */
    display: flex; /* 使用flexbox将内容垂直和水平居中 */
    justify-content: center; /* 水平居中内容 */
    align-items: center; /* 垂直居中内容 */
    background-color: #e8e8e8; /* 设置body的背景颜色 */
}

.card {
    width: 290px; /* 设置卡片的宽度 */
    height: 350px; /* 设置卡片的高度 */
    background: linear-gradient(135deg, rgba(48, 48, 48, 1) 48%, rgba(0, 0, 0, 1) 100%); /* 设置卡片的线性渐变背景 */
    background-size: 300%, 300%; /* 设置背景的尺寸为300% */
    display: flex; /* 使用flexbox将内容垂直和水平居中 */
    align-items: center; /* 垂直居中内容 */
    justify-content: center; /* 水平居中内容 */
    position: relative; /* 设置卡片的定位为相对定位 */
    border-radius: 15px; /* 设置卡片的圆角边框 */
    box-shadow: 5px 5px 15px 5px #000000; /* 设置卡片的阴影效果 */
    overflow: hidden; /* 隐藏卡片内容溢出部分 */
    transition: all 1s ease; /* 设置卡片的过渡效果 */
}

.moon {
    width: 70px; /* 设置月亮图标的宽度 */
    height: 70px; /* 设置月亮图标的高度 */
    top: 15%; /* 设置月亮图标距离卡片顶部的位置 */
    right: 120px; /* 设置月亮图标距离卡片右侧的位置 */
    position: absolute; /* 设置月亮图标的定位为绝对定位 */
    fill: white; /* 设置月亮图标的填充颜色为白色 */
    transform: rotate(-20deg); /* 设置月亮图标的旋转角度为-20度 */
    transition: all 1s ease; /* 设置月亮图标的过渡效果 */
}

.rocket {
    width: 70px; /* 设置火箭图标的宽度 */
    height: 70px; /* 设置火箭图标的高度 */
    bottom: -2%; /* 设置火箭图标距离卡片底部的位置 */
    left: -2%; /* 设置火箭图标距离卡片左侧的位置 */
    position: absolute; /* 设置火箭图标的定位为绝对定位 */
    fill: white; /* 设置火箭图标的填充颜色为白色 */
    transition: all 1.9s ease; /* 设置火箭图标的过渡效果 */
}

.star {
    position: absolute; /* 设置星星图标的定位为绝对定位 */
    background: radial-gradient(circle, rgba(251, 239, 63, 1) 0%, rgba(255, 253, 212, 1) 100%); /* 设置星星图标的径向渐变背景 */
    clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); /* 设置星星图标的剪裁路径 */
}

.star-1 {
    width: 100px; /* 设置星星1的宽度 */
    height: 100px; /* 设置星星1的高度 */
    bottom: 90px; /* 设置星星1距离卡片底部的位置 */
    left: -15px; /* 设置星星1距离卡片左侧的位置 */
    transition: all 1s ease; /* 设置星星1的过渡效果 */
}

.star-2 {
    width: 150px; /* 设置星星2的宽度 */
    height: 150px; /* 设置星星2的高度 */
    top: -10%; /* 设置星星2距离卡片顶部的位置 */
    left: -10%; /* 设置星星2距离卡片左侧的位置 */
    transition: all .5s ease; /* 设置星星2的过渡效果 */
}

.star-3 {
    width: 100px; /* 设置星星3的宽度 */
    height: 100px; /* 设置星星3的高度 */
    bottom: 5%; /* 设置星星3距离卡片底部的位置 */
    right: -15px; /* 设置星星3距离卡片右侧的位置 */
    transition: all .3s ease; /* 设置星星3的过渡效果 */
}

.star-4 {
    width: 20px; /* 设置星星4的宽度 */
    height: 20px; /* 设置星星4的高度 */
    top: 4%; /* 设置星星4距离卡片顶部的位置 */
    right: 5px; /* 设置星星4距离卡片右侧的位置 */
    transition: all 1.4s ease; /* 设置星星4的过渡效果 */
}

.star-5 {
    width: 20px; /* 设置星星5的宽度 */
    height: 20px; /* 设置星星5的高度 */
    bottom: 24%; /* 设置星星5距离卡片底部的位置 */
    right: 45%; /* 设置星星5距离卡片右侧的位置 */
    animation: rotate 3s normal linear infinite; /* 设置星星5的旋转动画 */
}

.star-6 {
    width: 20px; /* 设置星星6的宽度 */
    height: 20px; /* 设置星星6的高度 */
    top: 14%; /* 设置星星6距离卡片顶部的位置 */
    right: 25%; /* 设置星星6距离卡片右侧的位置 */
    animation: rotate 5s normal linear infinite; /* 设置星星6的旋转动画 */
}

.star-7 {
    width: 40px; /* 设置星星7的宽度 */
    height: 40px; /* 设置星星7的高度 */
    top: 34%; /* 设置星星7距离卡片顶部的位置 */
    right: 65%; /* 设置星星7距离卡片右侧的位置 */
    animation: rotate 5s normal linear infinite; /* 设置星星7的旋转动画 */
}

.card-info span {
    font-size: 1.2em; /* 设置卡片信息中span元素的字体大小 */
    color: white; /* 设置卡片信息中span元素的字体颜色为白色 */
    font-weight: 600; /* 设置卡片信息中span元素的字体粗细为600 */
    text-transform: uppercase; /* 将卡片信息中span元素的文本转换为大写 */
    transition: all 1s ease; /* 设置卡片信息中span元素的过渡效果 */
}

.card:hover {
    background: rgb(48, 48, 48); /* 设置鼠标悬停时卡片的背景颜色 */
    background: linear-gradient(135deg, rgba(48, 48, 48, 1) 10%, rgba(0, 0, 0, 1) 90%); /* 设置鼠标悬停时卡片的线性渐变背景 */
    background-size: 100%, 100%; /* 设置鼠标悬停时背景的尺寸为100% */
}

.card:hover .star-1,
.card:hover .star-3 {
    background: linear-gradient(90deg, rgba(255, 241, 0, 1) 0%, rgba(246, 249, 93, 1) 77%, rgba(238, 255, 0, 1) 100%); /* 设置鼠标悬停时星星1和星星3的背景颜色 */
    transform: scale(1.2) rotate(10deg); /* 设置鼠标悬停时星星1和星星3的缩放和旋转效果 */
}

.card:hover .star-2,
.card:hover .star-4,
.card:hover .star-5 {
    background: linear-gradient(90deg, rgba(255, 241, 0, 1) 0%, rgba(246, 249, 93, 1) 77%, rgba(238, 255, 0, 1) 100%); /* 设置鼠标悬停时星星2、星星4和星星5的背景颜色 */
    transform: scale(1.2) rotate(-150deg); /* 设置鼠标悬停时星星2、星星4和星星5的缩放和旋转效果 */
}

.card:hover .rocket {
    transform: scale(.3) translate(450px, -730px) rotate(-260deg); /* 设置鼠标悬停时火箭图标的缩放、平移和旋转效果 */
}

.card:hover .moon {
    width: 50px; /* 设置鼠标悬停时月亮图标的宽度 */
    height: 50px; /* 设置鼠标悬停时月亮图标的高度 */
}

.card:hover span {
    font-size: 1.5em; /* 设置鼠标悬停时卡片信息中span元素的字体大小 */
}

@keyframes rotate {
    0% {
        -webkit-transform: rotate3d(0, 0, 1, 0deg); /* 设置旋转动画的初始状态 */
        transform: rotate3d(0, 0, 1, 0deg);
    }

    25% {
        -webkit-transform: rotate3d(0, 0, 1, 90deg); /* 设置旋转动画的25%状态 */
        transform: rotate3d(0, 0, 1, 90deg);
    }

    50% {
        -webkit-transform: rotate3d(0, 0, 1, 180deg); /* 设置旋转动画的50%状态 */
        transform: rotate3d(0, 0, 1, 180deg);
    }

    75% {
        -webkit-transform: rotate3d(0, 0, 1, 270deg); /* 设置旋转动画的75%状态 */
        transform: rotate3d(0, 0, 1, 270deg);
    }

    100% {
        -webkit-transform: rotate3d(0, 0, 1, 360deg); /* 设置旋转动画的结束状态 */
        transform: rotate3d(0, 0, 1, 360deg);
    }
}

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

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

相关文章

[JavaWeb玩耍日记] 数据库

mysql版本&#xff1a;5.7.24 使用Navicat for MySQL辅助学习(2015年版)&#xff0c;这个在粘贴本博客的块引用内容时会有额外的不可见内容导致sql运行出问题&#xff0c;不过有影响的地方笔者已排除 目录 一.数据库创建 二.使用数据库与创建表 三.表内列的数据类型 四.修…

使用FinalShell连接Linux系统

1.为什么要使用FinalShell连接Linux系统&#xff1f; 如果直接使用VMware上的Linux系统会有很多不方便&#xff1a; 内容的复制粘贴跨越VMware不方便文件的上传、下载跨越VMware不方便 也就是和Linux系统的各类交互&#xff0c;跨越VMware不方便 2.FinalShell下载 FinalSh…

Jmeter 性能 —— 电商系统TPS计算!

1、怎么计算得出TPS指标 ①第一个通过运维那边给的生产数据&#xff0c;看一下生产进件有多少&#xff0c;计算得来的&#xff0c;如果没有生产数据&#xff0c;或者不过就看如下的方法 ②第二个就是根据最近一个月的实际访问数据&#xff0c;比如每天调用了多少个接口&#…

单元测试、系统测试、集成测试知识总结

一、单元测试的概念 单元测试是对软件基本组成单元进行的测试&#xff0c;如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法&#xff0c;有可能对应多个程序文件中的一组函数。 单元也具有一些基本的属性。比如&#xff1a;明确的功能、规格定义&#…

asp.net手机销售管理系统的设计与实现

该系统分为两个功能模块。用户可以通过注册登录进入&#xff0c;进入系统页面后可以对个人密码进行修改以及购买手机&#xff0c;手机退货等操作。管理员登陆后能对手机库存进行添加手机库存&#xff0c;删除手机库存&#xff0c;修改手机库存以及查询手机库存的管理。系统以SQ…

迭代实现二叉树的遍历(算法村第七关黄金挑战)

迭代实现前序遍历 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 题解的迭代方式 因为在递归的过程中使用了系统栈&#xff0c;所以在迭代的解法中常用 Stack 来模拟系统栈&#xff0c;来模拟递归。 首先创建一个 Stack 用来存放节点&#xff0c;此时 Sta…

算法每日一题: 被列覆盖的最多行数 | 二进制 - 状态压缩

大家好&#xff0c;我是星恒 今天的题目又是一道有关二进制的题目&#xff0c;有我们之前做的那道 参加考试的最大学生数的 感觉&#xff0c;哈哈&#xff0c;当然&#xff0c;比那道题简单多了&#xff0c;这道题感觉主要的考点就是二进制&#xff0c;大家可以好好总结一下这道…

栅极驱动芯片三种隔离技术

栅极驱动芯片三种隔离技术 1.栅极驱动器概述2.隔离栅极驱动芯片2.1隔离驱动器重要指标 3.三种常见隔离技术3.1光隔离3.2变压器隔离/磁隔3.3电容隔离 4.三种隔离器性能对比 1.栅极驱动器概述 栅极驱动器&#xff0c;在任何功率水平为任何应用高效可靠地驱动任何功率开关。 比如M…

我的2023年总结:往前看,别回头

2023年已经结束&#xff0c;我借此机会回顾一下我的2023年&#xff0c;同时也为2024年立好flag。 文章目录 2023印象深刻的实战经历技术成长与规划技术分享与交流CSDN博客参加百度apollo技术讨论会 深入学习Redis源码多彩的生活张杰演唱会《漫长的季节》&#xff1a;往前看&am…

【unity小技巧】FPS游戏实现相机的震动、后坐力和偏移

最终效果 文章目录 最终效果前言相机的震动实现后坐力和偏移相机震动相机震动脚本换弹节点震动 武器射击后退效果完结 前言 关于后坐力之前其实已经分享了一个&#xff1a;FPS游戏后坐力制作思路 但是实现起来比较复杂&#xff0c;如果你只是想要简单的实现&#xff0c;可以看…

R304S 指纹识别模块指令系统二

(16) 读索引表 PS_ReadIndexTable 功能说明&#xff1a;读取录入模版的索引表 输入参数&#xff1a;索引表页码&#xff0c;页码 0&#xff0c;1&#xff0c;2&#xff0c;3…分别对应模版从 0-256&#xff0c;256-512&#xff0c;512-768&#xff0c;768-1024…的索引&#…

玩转Python:用Python处理文档,5个必备的库,特别实用,附代码

在Python中&#xff0c;有几个流行的库用于处理文档&#xff0c;包括解析、生成和操作文档内容。以下是一些常用的库及其简介和简单的代码示例&#xff1a; PyPDF2 - 用于处理PDF文件。 简介&#xff1a;PyPDF2是一个纯Python库&#xff0c;用于分割、合并、转换和提取PDF文件中…

IDEA2023 最新版详细图文安装教程(Java环境搭建+IDEA安装+运行测试+汉化+背景图设置)

IDEA2023 最新版详细图文安装教程 名人说&#xff1a;工欲善其事&#xff0c;必先利其器。——《论语》 作者&#xff1a;Code_流苏(CSDN) o(‐&#xff3e;▽&#xff3e;‐)o很高兴你打开了这篇博客&#xff0c;跟着教程去一步步尝试安装吧。 目录 IDEA2023 最新版详细图文安…

pycharm indent rainbow插件

设置自定义颜色&#xff1a; 4DF0FFFF,4DE1FFFF,4DFFFACD,4DAFEEEE 前两位为4D&#xff0c;后面4位为RGB颜色表中的字 颜色表&#xff1a;RGB颜色对照表

『华为云耀云服务器实战』|云服务器如何快速搭建个人博客(图文详解)

文章目录 引言一、云耀云服务器L实例介绍1.1 准备一个华为云耀云服务器1.2 重置实例密码1.3 利用xshell 远程连接 二、安装环境软件2.1 安装git准备远程拉取2.2 安装Docker 和 Docker compose 三、博客开源项目介绍3.1 操作界面展览 四、拉取项目搭建个人博客4.1 拉取项目进行配…

书摘:C 嵌入式系统设计模式 06

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述原书第 2 章的内容。 作为嵌入…

运维工程师的出路

运维工程师的出路到底在哪里&#xff1f; 你是不是也常常听到身边的运维人员抱怨&#xff0c;他们的出路到底在哪里呢&#xff1f;别着急&#xff0c;让我告诉你&#xff0c;运维人员就像是IT界的“万金油”&#xff0c;他们像“修理工”一样维修服务器&#xff0c;像“消防员…

专业级的渗透测试服务,助力航空业数字化安全启航

​某知名航空公司是中国首批民营航空公司之一&#xff0c;运营国内外航线200多条&#xff0c;也是国内民航最高客座率的航空公司之一。在数字化发展中&#xff0c;该航空公司以数据驱动决策&#xff0c;通过精细化管理、数字创新和模式优化等方式&#xff0c;实现了精准营销和个…

0基础学习VR全景平台篇第134篇:720VR全景,云台调整节点

相机、云台和脚架全套设备组装完成后需要进行调校才能开始拍摄。这一节&#xff0c;我们将主要介绍云台调整的两个内容&#xff1a;对中心靶、调三点一线。&#xff08;后附调校原理&#xff09; 云台部件名称 一、调节准备 &#xff08;一&#xff09;对于安装好的云台 1.检…

基础面试题整理1

1.面向对象的特点 继承&#xff08;复用性&#xff09;、封装&#xff08;复用性&#xff09;、多态&#xff08;可移植性、灵活性&#xff09; 2.ArrayList与LinkedList区别 ArrayList和LinkedList都是实现了List接口 ArrayList底层是动态数组 LinkedList底层是链表&#…