首页 > 其他分享 >如何创建一个简单的音乐推荐页面:从零开始的指南(内含完整代码)

如何创建一个简单的音乐推荐页面:从零开始的指南(内含完整代码)

时间:2024-08-07 21:54:48浏览次数:13  
标签:内含 color 音乐 list li 从零开始 歌曲 页面

如何创建一个简单的音乐推荐页面:从零开始的指南

引言

在这篇博客中,我们将学习如何创建一个简单的音乐推荐页面。这个项目将帮助你熟悉HTML、CSS和JavaScript的基本使用。我们会创建一个现代化的页面,包括一个顶部导航栏、一个轮播图展示最新音乐、一个推荐歌曲列表以及一个基础的页脚。

项目结构

我们将创建以下文件来完成这个项目:

  1. index.html - HTML结构文件
  2. styles.css - 样式文件
  3. script.js - JavaScript脚本文件

第一步:创建HTML结构

首先,我们需要定义页面的结构。打开你的代码编辑器,新建一个文件 index.html,并写入以下内容:

<!DOCTYPE html><html lang="zh"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>网易云音乐仿制版</title>
    <link rel="stylesheet" href="styles.css"></head><body>
    <header>
        <div class="logo">网易云音乐</div>
        <nav>
            <ul>
                <li><a href="#">发现音乐</a></li>
                <li><a href="#">我的音乐</a></li>
                <li><a href="#">下载客户端</a></li>
                <li><a href="#">登录</a></li>
            </ul>
        </nav>
    </header>

    <main>
        <section class="banner">
            <h2>最新音乐</h2>
            <div class="banner-images">
                <img src="banner1.jpg" alt="Banner 1">
                <img src="banner2.jpg" alt="Banner 2">
                <img src="banner3.jpg" alt="Banner 3">
            </div>
        </section>

        <section class="music-list">
            <h2>推荐歌曲</h2>
            <ul id="song-list">
                <!-- JavaScript will populate this list -->
            </ul>
        </section>
    </main>

    <footer>
        <p>&copy; 2024 网易云音乐 | 版权所有</p>
    </footer>

    <script src="script.js"></script></body></html>

解析HTML结构

  1. 头部 (<header>)

    • 包含网站的 logo 和导航栏。
    • 导航栏使用了无序列表来列出不同的链接。
  2. 主要内容 (<main>)

    • 包含一个轮播图展示最新音乐和一个推荐歌曲列表。
    • 轮播图部分用来显示图片,推荐歌曲部分用来展示歌曲列表。
  3. 页脚 (<footer>)

    • 显示版权信息。

第二步:添加样式

接下来,我们将添加样式来美化页面。创建一个新的文件 styles.css 并加入以下内容:

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f4f4f4;
    color: #333;
}

header {
    background-color: #ff6a00;
    color: white;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

header .logo {
    font-size: 1.5em;
    font-weight: bold;
}

nav ul {
    list-style: none;
    display: flex;
}

nav ul li {
    margin-left: 20px;
}

nav ul li a {
    color: white;
    text-decoration: none;
    font-size: 1em;
    transition: color 0.3s;
}

nav ul li a:hover {
    color: #ffb74d;
}

.banner {
    position: relative;
    text-align: center;
    margin: 20px 0;
    overflow: hidden;
}

.banner h2 {
    font-size: 1.5em;
    color: #333;
    margin-bottom: 10px;
}

.banner-images {
    display: flex;
    justify-content: center;
    overflow: hidden;
}

.banner-images img {
    width: 100%;
    max-height: 400px;
    object-fit: cover;
    transition: transform 0.5s;
}

.banner-images img:hover {
    transform: scale(1.05);
}

.music-list {
    padding: 20px;
    background: white;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    margin: 0 20px;
}

.music-list h2 {
    font-size: 1.5em;
    color: #333;
    margin-bottom: 15px;
}

.music-list ul {
    list-style: none;
}

.music-list li {
    padding: 10px;
    border-bottom: 1px solid #ddd;
    transition: background 0.3s;
}

.music-list li:hover {
    background: #f1f1f1;
}

.music-list li:last-child {
    border-bottom: none;
}

footer {
    text-align: center;
    padding: 15px;
    background-color: #242424;
    color: white;
    position: relative;
    bottom: 0;
    width: 100%;
    box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
}

解析CSS样式

  1. 全局样式

    • 使用通用选择器 * 清除默认的边距和内边距。
  2. 头部

    • 设置背景颜色、文本颜色、内边距和阴影效果。
    • 修改导航链接的样式并添加悬停效果。
  3. 轮播图

    • 设置图片的显示效果和悬停放大效果。
  4. 音乐列表

    • 设置背景颜色、阴影效果和悬停背景色变化。
  5. 页脚

    • 设置背景颜色、文本颜色和位置。

第三步:添加交互功能

最后,我们将添加一些简单的交互功能。创建一个新的文件 script.js 并加入以下内容:

document.addEventListener("DOMContentLoaded", function() {
    const songList = document.getElementById("song-list");
    
    const songs = [
        "歌曲五 - 歌手五",
        "歌曲六 - 歌手六",
        "歌曲七 - 歌手七",
        "歌曲八 - 歌手八",
        "歌曲九 - 歌手九"
    ];

    songs.forEach(song => {
        const li = document.createElement("li");
        li.textContent = song;
        songList.appendChild(li);
    });
});

解析JavaScript脚本

  1. DOM内容加载完成后执行

    • 使用 DOMContentLoaded 事件确保DOM结构加载完成后执行脚本。
  2. 动态添加歌曲

    • 定义一个包含歌曲信息的数组。
    • 遍历数组,将每首歌动态添加到页面的歌曲列表中。

总结

通过这个项目,我们学习了如何用HTML构建页面结构,如何用CSS美化页面,如何用JavaScript动态地操作DOM。这些知识是创建现代网页的基础。你可以在此基础上继续扩展功能,比如添加实际的音乐播放器、引入更多的动态内容等。希望这篇博客对你有所帮助!

如果你有任何问题或需要进一步的帮助,欢迎在评论区留言!

标签:内含,color,音乐,list,li,从零开始,歌曲,页面
From: https://blog.csdn.net/Mr_Zhangyuge/article/details/141002132

相关文章

  • web页面中直接调用c++/c/go代码?【wasm】
    背景最近在做rosbag的可视化工具,网上找了个源码参考(foxglove)。成功down下来,跑起来了。于是乎,开始研究前后端代码;结果居然花了一下午没找到后端代码,不明白为什么纯web页面就可以解析rosbag(以前都是用node.js或者c++代码解析的)。过程在找了一下午之后,又回到了老办法;看netork,果然......
  • 常见的隐藏页面元素的方式
    常见的隐藏页面元素的方式有以下几种:display:none;:元素完全不显示,不占据页面空间,也不会影响页面布局。visibility:hidden;:元素不可见,但仍占据原来的空间,会影响页面布局。opacity:0;:元素透明度变为0,不可见但占据空间,并且可以响应鼠标事件。width:0;height:0;ov......
  • 《重生到现代之从零开始的C语言生活》—— 调试
    前言:调试是几乎每一个计算机行业的人员必备的技能,那么让我们来学习一下吧bugbug这个词好像出现在生活的很多地方,一般指在电脑系统中或程序中,隐藏着一些未被发现的缺陷和问题,简称程序漏洞调试(debug)我们发现bug后,下一步就是找到问题并修复问题,找问题的过程就是调试调试一......
  • 《重生到现代之从零开始的C语言生活》——函数递归
    递归啥是递归啊递归是解决问的一种方式,简单来说,就是函数自己调用自己递归解决问题把复杂的大问题转化为一个一个与原文题相似的小问题。递归的思想就是把大事化小在递归中,递就是递推,归就是回归递归中的限制条件递归必须存在限制条件,当满足这个条件时,递归不在继续每次......
  • 从零开始开发微信小程序-资源准备
            工欲善其事,必先利其器。在完成小程序的申请之后,接下来就要着手准备开发环境和服务器的相关资源了。本文主要聚焦于域名备案以及SSL证书的购置流程;如果您对这些方面相当了解,可以直接跳过这部分内容。        1、服务器资源        1.1服务器......
  • 【多线程-从零开始-肆】线程安全、加锁和死锁
    进程状态进程状态:就绪:正在CPU上执行,或者随时可以去CPU上执行阻塞:暂时不能参与CPU的执行Java的线程,对应状态做了更详细的区分,不仅仅是就绪和阻塞了六种状态:NEW当前Thread对象虽然有了,但是内核的线程还没有(还没调用过start)TERMINATE当前Thread对......
  • 【多线程-从零开始-伍】volatile关键字和内存可见性问题
    volatile关键字importjava.util.Scanner;publicclassDemo2{privatestaticintn=0;publicstaticvoidmain(String[]args){Threadt1=newThread(()->{while(n==0){//啥都不写......
  • 帝国CMS自定义页面动态设置
    帝国CMS提供灵活的自定义页面功能,允许用户创建和管理动态内容页面。以下步骤介绍如何设置帝国CMS自定义页面动态:1.创建自定义页面在帝国CMS管理后台,导航到"栏目">>"自定义页面">>"添加自定义页面"。输入页面标题和页面内容,然后单击"提交"保存页面。2.定义字段转到"栏目">>"......
  • 一个定时器的轮询,页面卸载清除轮询的定时器 ,js 接口5s轮询 轮询查询应用安装状态
    在JavaScript中,如果您使用setInterval创建了一个定时器来进行轮询,并希望在页面卸载时清除这个定时器,您可以按照以下步骤实现:示例代码://假设这是查询应用安装状态的函数functioncheckInstallationStatus(){//这里应该是发起网络请求的逻辑//例如使用fetchAPI获取......
  • 从零开始学嵌入式技术之C语言11:指针
    一:指针的理解(1)变量的访问方式        内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 ,为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元通常占用1个字节。变量在内存中分配空间,不同类型的变量占用不同大小的空间,那如何访问内......