首页 > 其他分享 >手写一个使用css3旋转硬币的效果

手写一个使用css3旋转硬币的效果

时间:2024-11-28 10:37:13浏览次数:6  
标签:css3 center 硬币 transform 旋转 rotateY 手写 coin

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS3 旋转硬币</title>
<style>
body {
  background-color: #f0f0f0;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

.coin {
  width: 100px;
  height: 100px;
  position: relative;
  perspective: 800px;
  margin: 50px auto;
}

.coin-inner {
  width: 100%;
  height: 100%;
  position: absolute;
  transform-style: preserve-3d;
  transition: transform 1s ease-in-out;
}

.coin-front, .coin-back {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  position: absolute;
  backface-visibility: hidden; /* 关键属性,防止背面在旋转过程中可见 */
}

.coin-front {
  background-color: #ffd700; /* 金色 */
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  color: #333;
}


.coin-back {
  background-color: #c0c0c0; /* 银色 */
  transform: rotateY(180deg);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  color: #333;
}

.coin:hover .coin-inner {
  transform: rotateY(180deg); /* 鼠标悬停时旋转180度 */
}


</style>
</head>
<body>

<div class="coin">
  <div class="coin-inner">
    <div class="coin-front">正面</div>
    <div class="coin-back">反面</div>
  </div>
</div>

</body>
</html>

代码解释:

  • HTML 结构: 一个 coin div 作为容器,内部包含 coin-innercoin-inner 再包含 coin-frontcoin-back 两个面。
  • CSS 样式:
    • perspective: 设置透视效果,值越大,透视效果越弱。
    • transform-style: preserve-3d;: 使子元素在3D空间中呈现。
    • backface-visibility: hidden;: 这是关键属性,它隐藏了背面,防止在旋转过程中看到背面。
    • transform: rotateY(180deg);: 旋转180度,用于初始化背面。
    • transition: transform 1s ease-in-out;: 设置旋转动画,1秒钟,ease-in-out缓动效果。
    • :hover: 鼠标悬停时触发旋转动画。

如何使用:

  1. 将代码保存为 HTML 文件 (例如 coin.html)。
  2. 使用浏览器打开该文件。
  3. 鼠标悬停在硬币上,即可看到硬币翻转的效果。

进阶用法:

  • 自定义旋转角度: 可以修改 rotateY 的值来控制旋转角度,例如 rotateY(360deg) 旋转一圈。
  • 添加点击事件: 可以使用 JavaScript 添加点击事件,实现点击翻转硬币的效果。
  • 更真实的硬币效果: 可以使用图片代替背景颜色,并添加阴影等效果,使硬币看起来更真实。

希望这个例子对您有所帮助!

标签:css3,center,硬币,transform,旋转,rotateY,手写,coin
From: https://www.cnblogs.com/ai888/p/18573740

相关文章

  • 使用css3做一个魔方旋转的效果
    <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>CSS3魔方旋转</title><style>body{background-color:#f0f0f0;perspective:800px;/*为父元素添加透视效果*/}.cube-container{width:200px;hei......
  • 654. 大学生HTML5期末大作业 ―【Bootstrap框架家居装饰公司响应式自适应网页】 Web前
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这么......
  • 【高性能组件(1)】手写线程池
    文章目录前言一、线程池介绍1.1为什么需要线程池?1.2线程池的作用1.3线程池的构成二、手写线程池2.1接口设计2.1.1封装原则2.1.2创建线程池的接口2.2数据结构设计2.3线程池线程数量选择2.3.1维持固定数量线程2.3.2线程数量选择2.4具体编码实现2.4.1外部接......
  • 将 Python 计算代码转换为渲染的 LaTeX,就像手写一样清晰易懂!
    handcalcs是一个非常实用的开源Python库,它的特别之处在于能够将Python计算结果转换为渲染的LaTeX格式,使得复杂的计算过程像手写公式一样清晰、直观。这个工具对工程师、科学家以及任何从事数值计算的人来说,都可以大幅提高表达计算过程的可读性和透明度。handcalcs......
  • 重拾JS-手写bind(延伸作用域理解,有助于面试)
    简言最近在做前端知识的复习和整理,有了一些自己新的体会。更多在于记录,通过反复的温习,写笔记改变自己以前学习知识点的误区关于Bind,Apply,Call大家本能知道,当函数调用他们的时候就会将函数中的this,显示指向他们的第一个参数(新对象),那么为什么大家在面试或者其他场景下仍然会因......
  • 举例说明在css3中怎么实现背景裁剪?
    CSS3提供了background-clip属性来实现背景裁剪。background-clip属性指定背景的绘制区域,可以控制背景是否延伸到边框、内边距或内容区域之下。以下是一些例子:1.background-clip:border-box;(默认值)背景延伸到边框外边缘。这是默认行为,背景会覆盖边框区域。div{wid......
  • 请说说CSS3实现文本效果的属性有哪些?
    CSS3提供了丰富的属性来实现各种文本效果。以下是一些常用的属性及其作用:文本装饰和样式:text-shadow:为文本添加阴影效果,可以设置阴影的偏移量、模糊半径和颜色。text-decoration:设置文本的装饰线,例如underline(下划线)、overline(上划线)、line-through(删除线)、none(无装饰)......
  • CSS3中的transition是否可以过渡opacity和display?
    transition属性可以过渡opacity,但不能直接过渡display。display属性的变化是离散的(例如,从none到block),而transition旨在处理连续的值变化,例如数字或颜色。尝试直接使用transition过渡display不会产生任何动画效果。要实现类似display过渡的效果,通常需要结合其......
  • 一键擦除手写笔迹,试试这款省时省力的学习利器
    凡是给小朋友辅导过功课,或是自己有过考证经验的朋友,想必都对成沓成堆的书本、习题册、试卷、资料不太陌生。尽管电子化办公已逐渐走向成熟,“笔头”和“案卷”仍然是大家成长过程中必经的一环。与之相伴的,是涂改得花花绿绿、覆满字迹的纸页。当作业和试卷批改完,需要整理错题、二次......
  • C++解决:翻硬币、飞行员兄弟、费解的开关
    1.翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零),比如可能情形是 **oo***oooo,如果同时翻转左边的两个硬币,则变为 oooo***oooo。现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能......