aiaiask.com©

开花即结果 提问即答案

js实现酷狗动态歌词效果
原始问题:

js实现酷狗动态歌词效果

要实现酷狗动态歌词效果,你可以使用JavaScript和CSS来完成。下面是一个简单的实现示例:

HTML结构:

<div class="lyrics-container">
  <div class="lyrics">
    <span class="current-line">当前歌词</span>
    <span class="next-line">下一行歌词</span>
  </div>
</div>

CSS样式:

.lyrics-container {
  width: 300px;
  height: 100px;
  overflow: hidden;
}

.lyrics {
  position: relative;
  top: 0;
  transition: top 0.5s ease;
}

.lyrics span {
  display: block;
  line-height: 30px;
  text-align: center;
  color: #fff;
}

.current-line {
  font-size: 18px;
}

.next-line {
  font-size: 14px;
  opacity: 0.7;
}

JavaScript代码:

// 假设歌词数据为一个数组
var lyricsData = [
  { time: 0, text: "第一句歌词" },
  { time: 5, text: "第二句歌词" },
  { time: 10, text: "第三句歌词" },
  // ...
];

var lyricsContainer = document.querySelector('.lyrics');
var currentLine = document.querySelector('.current-line');
var nextLine = document.querySelector('.next-line');

var currentIndex = 0;

function updateLyrics() {
  currentLine.textContent = lyricsData[currentIndex].text;
  nextLine.textContent = lyricsData[currentIndex + 1] ? lyricsData[currentIndex + 1].text : '';

  // 滚动歌词
  lyricsContainer.style.top = -currentLine.offsetTop + 'px';

  // 更新索引
  currentIndex++;

  // 判断是否到达最后一行歌词
  if (currentIndex >= lyricsData.length) {
    currentIndex = 0;
  }

  // 根据歌词时间间隔调用更新函数
  var currentTime = lyricsData[currentIndex].time;
  var nextTime = lyricsData[currentIndex + 1] ? lyricsData[currentIndex + 1].time : Infinity;
  var delay = nextTime - currentTime;

  setTimeout(updateLyrics, delay * 1000);
}

// 开始滚动歌词
updateLyrics();

以上代码实现了一个简单的酷狗动态歌词效果。你可以根据实际需求修改样式和歌词数据。

js实现酷狗动态歌词效果
https://www.aiaiask.com/ask/45569.html
AI / 模型DeepSeek
时间 / DATEAugust 30, 2023, 1:44 PM
语言zh-CN
IP / 区域上海市上海市