当前位置:首页 > JavaScript

js css实现冰墩墩

2026-03-01 23:00:56JavaScript

以下是通过JavaScript和CSS实现冰墩墩效果的方法,结合动画和样式设计:

js css实现冰墩墩

基础HTML结构

<div class="bing-dwen-dwen">
  <div class="face"></div>
  <div class="body"></div>
  <div class="eyes"></div>
  <div class="mouth"></div>
</div>

CSS样式设计

.bing-dwen-dwen {
  position: relative;
  width: 200px;
  height: 220px;
  margin: 0 auto;
  background-color: #fff;
  border-radius: 50%;
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

.face {
  position: absolute;
  width: 180px;
  height: 160px;
  background: linear-gradient(135deg, #a5def1 0%, #e0f7fa 100%);
  border-radius: 50%;
  top: 20px;
  left: 10px;
}

.body {
  position: absolute;
  width: 150px;
  height: 180px;
  background-color: #fff;
  border-radius: 50%;
  bottom: 0;
  left: 25px;
}

.eyes {
  position: absolute;
  width: 30px;
  height: 40px;
  background-color: #333;
  border-radius: 50%;
  top: 70px;
  left: 50px;
}

.eyes::after {
  content: '';
  position: absolute;
  width: 30px;
  height: 40px;
  background-color: #333;
  border-radius: 50%;
  left: 70px;
}

.mouth {
  position: absolute;
  width: 40px;
  height: 10px;
  background-color: #ff6b6b;
  border-radius: 10px;
  top: 120px;
  left: 80px;
}

JavaScript动画实现

// 眨眼动画
const eyes = document.querySelector('.eyes');
setInterval(() => {
  eyes.style.height = '5px';
  setTimeout(() => {
    eyes.style.height = '40px';
  }, 200);
}, 3000);

// 左右摇摆动画
const bingDwenDwen = document.querySelector('.bing-dwen-dwen');
let angle = 0;
setInterval(() => {
  angle = angle > 10 ? -10 : 10;
  bingDwenDwen.style.transform = `rotate(${angle}deg)`;
}, 500);

进阶效果增强

添加彩虹光晕效果:

js css实现冰墩墩

.bing-dwen-dwen::before {
  content: '';
  position: absolute;
  width: 220px;
  height: 240px;
  border-radius: 50%;
  background: linear-gradient(45deg, 
    #ff0000, #ff7f00, #ffff00, #00ff00, 
    #0000ff, #4b0082, #9400d3);
  z-index: -1;
  opacity: 0.3;
  filter: blur(10px);
  animation: rainbow 3s linear infinite;
}

@keyframes rainbow {
  0% { filter: hue-rotate(0deg); }
  100% { filter: hue-rotate(360deg); }
}

响应式调整

通过JavaScript动态调整大小:

function resizeBingDwenDwen() {
  const container = document.querySelector('.bing-dwen-dwen');
  const size = Math.min(window.innerWidth, window.innerHeight) * 0.5;
  container.style.width = `${size}px`;
  container.style.height = `${size * 1.1}px`;
}

window.addEventListener('resize', resizeBingDwenDwen);
resizeBingDwenDwen();

以上代码组合可以创建一个具有基本特征和动画效果的冰墩墩形象,通过CSS控制外观样式,JavaScript实现动态交互效果。

标签: jscss
分享给朋友:

相关文章

css 导航栏制作

css 导航栏制作

水平导航栏制作 使用无序列表<ul>和<li>标签构建基础结构,通过CSS将列表项横向排列 <nav> <ul class="horizontal-na…

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form"&…

css 制作字体

css 制作字体

使用CSS自定义字体 在CSS中,可以通过@font-face规则引入自定义字体,并使用font-family属性应用这些字体。 @font-face { font-family: 'MyCus…

css日历制作

css日历制作

基础日历结构 使用HTML创建日历的基本框架,通常包含表格元素。月份、星期几和日期通过<table>标签组织,表头显示星期几,表格主体填充日期数字。 <div class="cal…

css制作菜单

css制作菜单

CSS 制作菜单的方法 使用 CSS 可以制作多种风格的菜单,包括水平菜单、垂直菜单、下拉菜单等。以下是几种常见的实现方式。 水平菜单 水平菜单通常用于导航栏,可以通过 display: inlin…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…