使用 HTML、CSS 和 JS 创建在线音乐播放器(含免费完整源码)(1)

然后现在让我们对主页部分进行编码。

🎯 home-section 首页部分


打开index.html和内部从编写基本的 HTML 结构开始。还链接style.css和两个 JS 文件。记得data.js在app.js. 否则我们将无法访问数据。

完成链接所有文件后,让我们创建第一件事。图像轮播。内部身体标签代码这个。

注意 - 将旋转木马包裹在home-section元素内。

@import url(‘https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap’);

*{

margin: 0;

padding: 0;

box-sizing: border-box;

}

:root{

–background: #141414;

–text-color: #fff;

–primary-color: #63ff69;

–secondary-color: #000;

–alpha-color: rgba(0, 0, 0, 0.5);

–shadow: 0 15px 40px var(–alpha-color);

}

html{

background: var(–background);

display: flex;

justify-content: center;

}

body{

width: 100%;

height: 100vh;

max-width: 375px;

position: relative;

background: var(–background);

font-family: ‘roboto’, sans-serif;

color: var(–text-color);

}

::-webkit-scrollbar{

display: none;

}

.home-section{

width: 100%;

padding: 20px;

height: 100%;

padding-bottom: 100px;

overflow-y: auto;

}

/* carousel */

.carousel{

width: 100%;

height: 200px;

overflow: hidden;

border-radius: 20px;

box-shadow: var(–shadow);

position: relative;

}

.carousel img{

position: absolute;

width: 100%;

height: 100%;

object-fit: cover;

opacity: 0;

transition: 1s;

}

.carousel img.active{

opacity: 1;

}

您可以看到我们在这里使用了 CSS 变量,因此我们将来可以轻松更改此音乐播放器主题。

输出

在这里插入图片描述

请注意,这是为移动视图设计的,这就是为什么我使用 chrome 检查器以移动尺寸查看它的原因。

现在创建水平滚动播放列表。放在home-section里面

HTML

最近播放

华语热歌

古风戏腔

//+3

根据你的喜好

失恋回忆

经典老歌

//+3

CSS

.heading{

margin: 30px 0 10px;

text-transform: capitalize;

font-weight: 400;

font-size: 30px;

}

/* playlists card */

.playlists-group{

position: relative;

width: 100%;

min-height: 200px;

height: auto;

display: flex;

flex-wrap: nowrap;

overflow-x: auto;

}

.playlist-card{

flex: 0 0 auto;

max-width: 150px;

height: 100%;

margin-right: 20px;

}

.playlist-card-img{

width: 100%;

height: 150px;

object-fit: cover;

border-radius: 20px;

}

.playlist-card-name{

width: 100%;

text-align: justify;

font-size: 20px;

text-transform: capitalize;

padding: 5px;

}

输出

在这里插入图片描述

我们完成了home section。但是我们的旋转木马还不起作用,所以让我们使用 js 让它工作。打开app.js文件并开始编码。

const carousel = […document.querySelectorAll(‘.carousel img’)];

let carouselImageIndex = 0;

const changeCarousel = () => {

carousel[carouselImageIndex].classList.toggle(‘active’);

if(carouselImageIndex >= carousel.length - 1){

carouselImageIndex = 0;

} else{

carouselImageIndex++;

}

carousel[carouselImageIndex].classList.toggle(‘active’);

}

setInterval(() => {

changeCarousel();

}, 3000);

您可以看到我们的轮播元素,每 3 秒切换一次图像active类。

在这里插入图片描述

现在让我们制作我们的播放器部分。

🍖 player-section 播放器部分


首先使其最小化视图。

song 1

artist 1

00 : 00

00 : 00

如果你看到我们的播放器结构,你会注意到我们有很多hide元素的类。此类hide指示元素将在最小化视图中隐藏。我们为所有元素提供了相同的类,因此我们可以轻松地在 CSS 中设置它们的样式。

.music-player-section{

width: 100%;

height: 100px;

position: fixed;

bottom: 0;

left: 0;

background: var(–alpha-color);

backdrop-filter: blur(50px);

transition: 1s;

}

.music-seek-bar{

-webkit-appearance: none;

width: 100%;

position: absolute;

top: -4px;

height: 8px;

background: var(–secondary-color);

overflow: hidden;

}

.music-seek-bar::-webkit-slider-thumb{

-webkit-appearance: none;

height: 10px;

width: 5px;

background: var(–primary-color);

cursor: pointer;

box-shadow: -400px 0 0 400px var(–primary-color);

}

.current-song-name{

font-weight: 300;

font-size: 20px;

text-align: center;

margin-top: 5px;

text-transform: capitalize;

}

.controls{

position: relative;

width: 80%;

margin: auto;

display: flex;

justify-content: center;

align-items: center;

height: 60px;

font-size: 30px;

}

.controls span{

display: none;

opacity: 0;

transition: 1s;

}

.music-player-section.active .controls{

justify-content: space-between;

}

.music-player-section.active .controls span{

font-size: 25px;

display: block;

opacity: 0.5;

}

.music-player-section.active .controls span.active{

color: var(–primary-color);

opacity: 1;

}

.controls .main i{

margin: 0 5px;

display: none;

}

.controls .main i.active{

display: inline;

}

现在让我们创建最大化视图的样式。

.music-player-section .hide{

display: none;

opacity: 0;

transition: 1s;

}

.music-player-section.active .hide{

display: block;

opacity: 1;

}

.music-player-section.active{

width: 100%;

height: 100%;

padding: 30px;

display: flex;

flex-direction: column;

}

.music-player-section.active .music-seek-bar{

position: relative;

display: block;

border-radius: 50px;

margin: auto;

}

.music-player-section.active .current-song-name{

font-size: 40px;

}

.music-player-section.active .controls{

width: 100%;

font-size: 50px;

}

.artist-name{

text-align: center;

font-size: 20px;

text-transform: capitalize;

}

.cover{

width: 30vh;

height: 30vh;

object-fit: cover;

margin: auto;

border-radius: 20px;

box-shadow: var(–shadow);

}

.current-time{

position: absolute;

margin-top: 5px;

left: 30px;

}

.duration{

position: absolute;

margin-top: 5px;

right: 30px;

}

.icon{

position: absolute;

top: 60px;

transform: scale(1.3);

}

.back-btn{

left: 40px;

}

.nav-btn{

right: 40px;

}

/* volume button */

.volume-slider{

-webkit-appearance: none;

width: 100px;

height: 40px;

position: absolute;

right: -35px;

bottom: 80px;

transform: rotate(-90deg);

border-radius: 20px;

background: var(–alpha-color);

overflow: hidden;

opacity: 0;

display: none;

}

.volume-slider.active{

opacity: 1;

display: block;

}

.volume-slider::-webkit-slider-thumb{

-webkit-appearance: none;

height: 40px;

width: 10px;

background: var(–primary-color);

box-shadow: -200px 0 1px 200px var(–primary-color);

}

输出

在这里插入图片描述

并检查这些样式,现在像这样将active添加到 class music-player-section 中去。

输出

在这里插入图片描述

我们最终会让这个播放器发挥作用。现在从player section类删除这个active。让我们创建播放列表部分。

🏆 playlist-section 播放列表部分


播放列表

song 1

// +7

CSS

.playlist{

width: 100%;

height: 100%;

position: fixed;

top: 0;

right: -100%;

padding: 30px 0;

background: var(–background);

z-index: 3;

transition: 1s;

overflow: auto;

}

.playlist.active{

right: 0;

}

.title{

font-weight: 300;

font-size: 40px;

text-align: center;

margin-top: 15px;

text-transform: capitalize;

margin-bottom: 30px;

}

.queue{

width: 100%;

height: 80px;

padding: 0 30px;

display: flex;

align-items: center;

border-top: 2px solid var(–alpha-color);

}

.queue-cover{

width: 60px;

height: 60px;

border-radius: 10px;

overflow: hidden;

margin-right: 20px;

position: relative;

}

.queue-cover img{

width: 100%;

height: 100%;

object-fit: cover;

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
1、音乐二级分类; 2、在线音乐播放; 3、歌词同步显示; 4、音乐下载 5、点歌系统; 6、音乐联播; 7、用户随机收听音乐; 8、验证码功能; 9、JS首页调用; 10、与Discuz整合; 11、用户评论管理; 12、网站公告管理 13、友情链接管理 14、JS广告功能 15、后台提示程序是否为最新版 16、LRC 歌词下载; 17、Cookie 记录用户信息; 18、Cookie 音乐防盗链技术(有效的保护你的音乐文件以防被盗链); 19、详细的歌曲信息显示(包括发布时间、总人气、今日人气等); 20、会员注册及管理(“普通会员”和“认证会员”两个级别控制); 21、会员音乐盒功能(管理员可自定义每个会员音乐盒最大的保存数目); 22、会员推荐音乐功能; 23、认证会员上传LRC歌词功能(必须是LRC格式的,否则播放时不能同步显示); 24、会员评分及评论功能; 25、两种音乐搜索方式(按歌名和歌手方式); 26、最新音乐、推荐音乐、点歌信息列表显示; 27、音乐排行功能(包括音乐总排行、今日试听排行、各音乐分类排行); 28、管理员换肤功能(方便你网站界面的修改); 29、如果你的空间足够大,管理员可以在线上传歌曲; 30、强大的后台管理功能,管理员可以在线对音乐及歌手进行添加、编辑、删除,系统参数的设置,斑主管理,会员管理,点歌、上传文件管理等操作, 相信有这30大功能,你已经可以构建一个功能非常完善的音乐网站了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值