手把手教你做网易云H5页面,进大厂后干的第一件事

引言

网易云音乐作为国内领先的音乐流媒体平台,它的H5网页值得所有前端程序员去模仿和学习。今天,我们就从零开始,以网易云练手,创建一个简单H5页面,要求能够实现基本的背景音乐的播放和上下滑动功能。通过这个项目,你将学会如何使用HTML、CSS和JavaScript来构建一个响应式和交互性强的H5页面。没准这就是你进入大厂后干的第一件事!!!

先来看看我们的最终成果

模拟器选择

调试方法分为本地调试和真机调试,没有实力进行真机调试,来使用本地调试。 在本地调试中,我们可以在开发早期阶段快速验证页面布局、功能和性能,确保页面在不同设备上的表现符合预期。 调试时,切换到手机形式,手机型号选择iPhone SE。在开发过程中,一般的设计稿总是750px。

简单介绍一下ptpx

  1. pt(物理像素) :相当于我们用浏览器来模拟移动端所看到的手机像素
  2. px(逻辑像素) :屏幕上显示数据的最基本的点,单个像素没有具体的尺寸概念

在手机常用的Retina 高清屏中,1pt=2px,可以看到iPhone SE正是375pt,也就是750px,所以我们在调试时一般选择iPhone SE

背景音乐控制

我们先来设计页面左上角的背景音乐控制功能

html:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>网易云音乐年终总结h5</title>
    <link rel="stylesheet" href="./common.css">
</head>
<body>
    //  引入一段任意的背景音乐
    <audio id="j-bgm" src="./bgm.mp3"></audio>
    //  在css中,将会给music-btn添加背景图片,来显示背景音乐的情况
    //  功能分开   music-btn播放  off未播放
    <div class="music-btn off"></div>
    <script>
        // dom 选取音频
        const audio = document.getElementById('j-bgm');
        // 选取music-btn
        const musicBtn = document.querySelector('.music-btn');
        // 事件绑定 添加点击事件,点击图标后背景音乐开关切换
        // 浏览器默认关闭音频
        musicBtn.addEventListener('click', function () {
            if (audio.paused) {  //点击后检查音频是否播放
                audio.play();  // 打开音频
            } else {
                audio.pause();  // 关闭音频
            }
    //  如果 off 类值已存在,则移除它,否则添加它(切换背景图片)
            musicBtn.classList.toggle('off');   
        })
    </script>
</body>
</html>

css:

css 复制代码
   * {
       margin: 0;
       padding: 0;
   }
   html,body {
       width: 100%;
       height: 100%;
   }
   .music-btn {    // 打开标志
       z-index: 999;    // 将层叠等级提高,不然会给页面增加背景时会被挡住
       position: fixed;    // 固定定位,让图标始终出现在左上角
       top: 25px;
       left: 25px;
       width: 40px;
       height: 40px;
       background: url(../assert/close.png) no-repeat center / cover;  
       // no-repeat不重复
       // center水平垂直方向居中
       // cover将背景图片按原宽高比进行缩放,以保证图片完全覆盖元素
   }
   .music-btn.off { //关闭标志
       background-image: url(../assert/music.png);
   }

关闭状态: 打开状态:

滑动功能

现在来开始实现上下滑动的功能,并且添加能够滑动的提示,为首页添加图片和网易云的文字 html:

html 复制代码
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.0.2/css/swiper.min.css">
    <audio id="j-bgm" src="./bgm.mp3"></audio>
    <!-- 新  添加提示滑页的标志 -->
    <div class="next-view-c"></div>
    <div class="music-btn off"></div>
    <!-- 滑页操作 -->
    <!-- 结构 -->
    <div class="swiper-container">
        <div class="swiper-wrapper">
            <div class="swiper-slide">
                <div class="view index">
                    <div class="logo-c"></div>
                </div>
            </div>
            <div class="swiper-slide"></div>
            <div class="swiper-slide"></div>
            <div class="swiper-slide"></div>
            <div class="swiper-slide"></div>
        </div>
    </div>
    // 引入
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.0.2/js/swiper.min.js"></script>
    <script>
        // 滑屏
        new Swiper('.swiper-container', {
            direction: 'vertical'
        })
    </script>

css:

css 复制代码
/* 单屏 滑屏h5 效果 */
   .swiper-container {
       width: 100%;
       height: 100%;
   //设置所有页背景颜色
   .swiper-slide {
       background-color: green;
   }
   // 改变奇数页背景颜色
   .swiper-slide:nth-child(odd) {
       background-color: pink;
   }
   // 网易云文字部分
   .next-view-c {
       z-index: 999;
       // 向下滑动提示
       background: url(http://s5.music.126.net/static_public/5c21db8d4684556c72180904/gx.4ae36e08269404412ecdb99e9453ca17.svg);
       //设置图片大小
       background-size: 100%;
       left: 50%;
       bottom: 10px;
       width: 13px;
       height: 86px;
       position: fixed;  //固定定位
       /* 小细节 */
       /* 网页的性能 translate3d 会开启 GPU加速 GPU 利用显存计算页面 速度更快 */
       transform: translate3d(-50%, 0, 0);
   }
   .view {
       width: 100%;
       height: 100%;
       overflow: hidden;
   }
   .view.index {
   // 首页背景图片
       background: url(http://s5.music.126.net/static_public/5c21db8d4684556c72180904/bgg.d78404cec29e5275598b87d1716f0592.png);
       position: absolute;   //绝对定位,相对于上一级有定位的元素
       background-position: center;
       background-size: cover;
   }
   .logo-c {
       position: absolute;  // 这里相对于.view
       top: 5.6%;
       right: 15%;
       width: 186px;
       height: 218px;
       // 网易云文字
       background: url(http://s5.music.126.net/static_public/5c21db8d4684556c72180904/title@2x.7c87506dfb012b9dfac5fdd39e2ccb06.png) no-repeat;
       background-size: 100%;
   }

总结

到现在,我们已经成功完成了一个简单的网易云h5手机网页。在这个项目中,我们学会了如何使用HTML、CSS和JavaScript来实现背景音乐播放和上下滑动功能。此外,我们还了解了如何使用Swiper库来实现页面的滑动效果,以及如何通过CSS来优化页面的性能和视觉效果。

希望这个项目能为你提供一些实用的前端开发经验,帮助你在未来的项目中更加得心应手。如果你有任何问题或建议,欢迎在评论区留言交流!

相关推荐
珹洺2 分钟前
从 HTML 到 CSS:开启网页样式之旅(二)—— 深入探索 CSS 选择器的奥秘
前端·javascript·css·网络·html
竺梓君12 分钟前
JavaScript内存管理机制解析
javascript·全栈
冰冻果冻25 分钟前
vue--制作随意滑动的相册
前端·javascript·vue.js
GISer_Jing1 小时前
前端测试工具(Jest与Mock)
前端·测试工具
licy__1 小时前
HTML 元素类型介绍
前端·css·html
谢尔登1 小时前
【Next】路由处理
服务器·javascript·css
一雨方知深秋1 小时前
WEB APIS(DOM对象,操作元素内容,属性,表单属性,自定义属性,定时器)
开发语言·前端·javascript
EasyNTS1 小时前
视频流媒体播放器EasyPlayer.js网页直播/点播播放器:如何清除浏览器缓存
开发语言·javascript·缓存
三金121381 小时前
整站使用Vue(工程化)
前端·javascript·vue.js
爱喝羊奶1 小时前
0 基础 新手应该看的AI编程导论
前端