当前位置:首页 > JavaScript

js css实现冰墩墩

2026-03-01 23:00:56JavaScript

以下是通过JavaScript和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);

进阶效果增强

添加彩虹光晕效果:

.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动态调整大小:

js css实现冰墩墩

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导航制作

基础导航栏制作 使用HTML的无序列表 <ul> 和 <li> 构建导航结构,CSS清除默认样式并横向排列: <nav> <ul class="navb…

css制作圆

css制作圆

使用CSS制作圆形元素 通过CSS的border-radius属性可以轻松将元素变为圆形。以下是具体实现方法: 基本圆形实现 .circle { width: 100px; height:…

css div制作

css div制作

使用CSS制作div元素 在HTML和CSS中,div元素是最常用的容器之一,用于布局和样式设计。以下是一些常见的方法和技巧: 基础div样式 <div class="box">这是一…

风车制作css

风车制作css

风车制作CSS方法 使用CSS创建风车效果可以通过动画和变换属性实现。以下是一个简单的风车旋转动画示例: HTML结构 <div class="windmill"> <div…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…