CSS动画(吃豆人)

简介: CSS动画(吃豆人)

1.整体效果

CSS吃豆人效果是一种将经典游戏元素融入现代网页设计中的有趣尝试。通过CSS的强大动画功能,我们可以在网页上创造出吃豆人游走的动画效果,不仅为用户带来怀旧的乐趣,同时也增加了网页的互动性和趣味性。

2.整体代码

HTML

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>吃豆人</title>  
    <link rel="stylesheet" type="text/css" href="6_5.css">  
</head>  
<body>  
<div class="pacManBox">  
    <div class="eye"></div>  
    <div class="mouthOne"></div>  
    <div class="mouthTwo"></div>  
    <div class="beansOne"></div>  
    <div class="beansTwo"></div>  
</div>  
</body>  
</html>

CSS

.pacManBox {  
    display: inline-block;  
    position: relative;  
    margin: 120px;  
}  
  
/* 使用伪元素创建吃豆人的眼睛 */.pacManBox::before {  
    content: '';  
    width: 0.4em;  
    height: 0.4em;  
    border-radius: 50%;  
    background-color: #333;  
    position: absolute;  
    top: 6px;  
    left: 21px;  
    z-index: 2000;  
}  
  
/* mouthOne搭配mouthTwo组成吃豆人张嘴闭嘴的动画 */.mouthOne {  
    width: 0;  
    height: 0;  
    border: 25px solid #E1B204;  
    border-radius: 50%;  
    border-right-color: transparent;  
    animation: upup .32s 0s infinite;  
    position: relative;  
    z-index: 3;  
}  
  
@keyframes upup {  
    0% {  
        transform: rotate(270deg);  
    }  
  
    50% {  
        transform: rotate(1turn);  
    }  
  
    100% {  
        transform: rotate(270deg);  
    }  
}  
  
.mouthTwo {  
    width: 0;  
    height: 0;  
    border: 25px solid #E1B204;  
    border-right-color: transparent;  
    border-radius: 25px;  
    margin-top: -50px;  
    animation: downdown .32s 0s infinite;  
    position: relative;  
    z-index: 3;  
}  
  
@keyframes downdown {  
    0% {  
        transform: rotate(90deg);  
    }  
  
    50% {  
        transform: rotate(0);  
    }  
  
    100% {  
        transform: rotate(90deg);  
    }  
}  
  
/* 豆子不断移动 */.beansOne {  
    background-color: #E1B204;  
    border-radius: 50%;  
    width: 10px;  
    height: 10px;  
    position: absolute;  
    transform: translateY(-6px);  
    top: 25px;  
    left: 100px;  
    animation: beanAnimation 1s linear .52s infinite;  
}  
  
.beansTwo {  
    background-color: #E1B204;  
    border-radius: 50%;  
    width: 10px;  
    height: 10px;  
    position: absolute;  
    transform: translateY(-6px);  
    top: 25px;  
    left: 100px;  
    animation: beanAnimation 1s linear 1.1s infinite;  
}  
  
  
@keyframes beanAnimation {  
    75% {  
        opacity: .72;  
    }  
  
    100% {  
        transform: translate(-100px, -6px);  
    }  
}
相关文章
|
14天前
|
前端开发 JavaScript 开发者
CSS进阶-过渡与动画的事件监听
【6月更文挑战第16天】**CSS过渡和动画事件增强交互性,但监听与控制需谨慎。了解`transitionend`用于CSS过渡结束时的响应,避免过度使用JavaScript检测变化。示例代码展示如何绑定`transitionend`事件并在结束后执行操作。对于CSS动画,理解`animationstart`, `animationiteration`, `animationend`事件的生命周期至关重要,确保在动画结束后进行适当的清理。通过这些技巧,优化用户体验并提高代码效率。**
|
10天前
|
前端开发 JavaScript 程序员
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
|
4天前
|
前端开发
CSS动画(毛玻璃按钮)
CSS动画(毛玻璃按钮)
|
4天前
|
前端开发 UED
CSS动画效果(炫酷登录页面)
CSS动画效果(炫酷登录页面)
|
4天前
|
前端开发
CSS动画效果(鼠标滑过按钮动画)
CSS动画效果(鼠标滑过按钮动画)
|
4天前
|
前端开发
css动画效果(边框流光闪烁阴影效果)
css动画效果(边框流光闪烁阴影效果)
|
4天前
|
前端开发 容器
css动画效果(边框线条流动效果)
css动画效果(边框线条流动效果)
|
26天前
|
前端开发 UED 容器
纯CSS画浮动卡通蓝天白云草坪动画效果
【6月更文挑战第1天】网页设计中,通过创新技巧,可以使用HTML和CSS模拟云朵漂浮和草地动画效果,提升用户体验。背景实现采用线性渐变动画,使背景颜色从浅青至白平滑过渡并循环移动。云朵效果通过多个不同大小和位置的`<div>`元素,结合CSS的`position: absolute;`和`@keyframes`动画实现浮动。草的动画则是通过三角形形状及`::before`和`::after`伪元素创造,配合不同动画速度和角度模拟自然摆动。完整代码可在提供的链接中下载。
29 1
纯CSS画浮动卡通蓝天白云草坪动画效果
|
14天前
|
前端开发 开发者 异构计算
CSS进阶-CSS动画关键帧
【6月更文挑战第15天】CSS的`@keyframes`创建细腻动画,定义样式变化阶段以增强网页互动性。通过`animation`属性应用动画,如`fadeIn`示例。常见问题包括动画结束状态、卡顿和浏览器兼容性,解决办法涉及优化关键帧、使用硬件加速和添加前缀。进阶技巧包括多步骤动画和控制播放状态。例如,背景色渐变动画展示了颜色随时间变化的效果。学习和实践关键帧动画,提升Web开发技能。
|
19天前
|
前端开发 JavaScript 开发者
CSS基础-CSS3过渡与动画
【6月更文挑战第11天】本文介绍了CSS3的过渡和动画特性,用于创建平滑的视觉效果。过渡通过`transition`属性实现元素样式改变的缓动效果,常用于按钮悬停、图片切换等场景。易错点包括忘记设置初始和最终样式,以及过渡效果不明显。动画则利用`@keyframes`定义关键帧序列,适用于循环播放的图标旋转等复杂效果。动画的错误可能在于结束状态处理和无限循环的性能问题。通过代码示例和避免常见陷阱,开发者能更好地利用CSS3动画提升网页交互体验。关键在于适度使用,保持界面流畅舒适。