当前位置:首页 > CSS

css制作弹幕

2026-01-28 05:20:35CSS

使用CSS制作弹幕效果

弹幕效果可以通过CSS动画和HTML结合实现,核心是利用@keyframes控制元素从右向左移动。以下是一个基础实现方案:

<div class="danmu-container">
  <div class="danmu">这是一条弹幕</div>
</div>
.danmu-container {
  position: relative;
  width: 100%;
  height: 100px;
  overflow: hidden;
  background: #000;
}

.danmu {
  position: absolute;
  white-space: nowrap;
  color: #fff;
  font-size: 16px;
  animation: move 10s linear infinite;
}

@keyframes move {
  from { transform: translateX(100%); }
  to { transform: translateX(-100%); }
}

多轨道弹幕实现

通过设置不同动画延迟和轨道位置,可实现多条弹幕不重叠:

.danmu:nth-child(1) { top: 20%; animation-delay: 0s; }
.danmu:nth-child(2) { top: 40%; animation-delay: 2s; }
.danmu:nth-child(3) { top: 60%; animation-delay: 4s; }

随机弹幕样式增强

使用CSS变量和随机函数增强视觉效果:

.danmu {
  --hue: calc(var(--rand) * 360);
  color: hsl(var(--hue), 100%, 70%);
  text-shadow: 0 0 5px currentColor;
  animation-duration: calc(8s + var(--rand) * 4s);
}

/* 通过JavaScript动态设置--rand变量 */

性能优化建议

使用will-change属性提升动画性能:

.danmu {
  will-change: transform;
}

考虑使用transform代替left属性进行位移,后者会触发重排:

@keyframes move {
  from { transform: translateX(100vw); }
  to { transform: translateX(-100%); }
}

高级弹幕特性

实现碰撞检测需要JavaScript配合,但纯CSS可通过以下方式模拟:

.danmu {
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

通过媒体查询调整移动速度:

css制作弹幕

@media (max-width: 768px) {
  @keyframes move {
    from { transform: translateX(100%); }
    to { transform: translateX(-100%); }
  }
}

标签: 弹幕css
分享给朋友:

相关文章

css立体相册制作

css立体相册制作

制作CSS立体相册 使用CSS3的3D变换和过渡效果可以创建一个立体相册。以下是一个基本的实现方法。 HTML结构 <div class="photo-album"> <di…

css制作固定模板

css制作固定模板

使用CSS创建固定模板的方法 固定模板通常指页面布局中某些元素(如导航栏、页脚)位置固定,不随滚动条移动。以下是几种实现方式: 固定定位(Fixed Positioning) 通过position:…

制作css导航栏实验

制作css导航栏实验

实验目标 通过CSS实现一个水平导航栏,包含悬停效果和响应式设计。 基本HTML结构 创建一个简单的导航栏HTML结构,使用<ul>和<li>标签组织导航项: <…

css下拉箭头的制作

css下拉箭头的制作

使用伪元素制作下拉箭头 通过CSS的::after或::before伪元素结合边框属性创建箭头。设置元素的position: relative,伪元素使用绝对定位调整位置。 .dropdown {…

使用css制作同心圆

使用css制作同心圆

使用 CSS 制作同心圆 同心圆可以通过嵌套多个圆形元素并利用 CSS 的定位和样式属性实现。以下是几种常见方法: 方法一:使用绝对定位和多个 div 通过嵌套多个 div 元素,设置相同的圆心位置…

css制作三行三列表格

css制作三行三列表格

使用HTML和CSS创建三行三列表格 通过HTML的<table>标签结合CSS样式可以轻松实现三行三列的表格结构。 <table class="three-by-three"&g…