前端——bootstrap响应式网页制作-星游记主题(大作业+源码)

Pan_peter 2024-08-02 09:33:06 阅读 57

一、前言

在b站上看见了童年神作的续集(虽然是个人自制)作品:【自制星游记续】十年后,我们再飞行!!!

【自制星游记续】十年后,我们再飞行!!!_哔哩哔哩_bilibili六一快乐,伙伴们。部分BGM来自:北京来的狼,鹿泊言{其实还有举杯邀酒请孤独,老杯做了很多动画bgm,很感谢他}开头的钢琴曲来自:再见秋猫配音表:麦当——繁陌浅 笛亚——名前桑 咕咚——在下秋爷 米龙——Variabilitysama 唐武德以及联盟士兵——老零ZERO , 视频播放量 93902、弹幕量 1023、点赞数 21409、投硬币枚数 20380、收藏人数 8282、转发人数 1365, 视频作者 K王桐木, 作者简介 修高!!!!!!!!!!!!!!!!!,相关视频:【自制星游记第28站】迷失的方向,最后的倒计时!,【自制星游记第27站】把彩虹海画下来,为自己而活,𝐓𝐌耗时𝟏𝟏𝟒𝟓𝟏𝟒秒修复的星游记《再飞行》,只为让你们带着梦想再次高高的飞起来啊!,纳米核心 第一季,2023,再等星游!,九年相识,三年等待!终将再一次响彻整个宇宙!,星游记,一部曾经有机会触碰那个天花板的作品。,星游记—笛亚,【独家】赘婿 第1集 风起【4月国创】,“这短短三小时,看懂的人却整整花了十几年”

https://www.bilibili.com/video/BV1om4y147ZM 剧情神还原!太赞了!

自己正好想了解一下响应式网页的制作——于是制作了一个简单的网页,用于练习

二、网页(源码)

星游记-响应式网页制作.zip - 蓝奏云文件大小:52.4 M|

https://wwwf.lanzout.com/iECSB0yuujxc

目录结构

把模块引用的CSS单独放一个文件夹里,方便以后CV

素材

搜集素材还是挺累时间的(文本内容+照片)

 

三、功能

1、导航变色(下拉到一定距离-变色)

2、打字机特效

3、鼠标特效(点击特效(烟花)-还可以加鼠标移动特效)

4、音乐播放 (用的大佬的)

5、盒子出现动画(JS库)

6、时间轴滚动特效(Plugin)

7、响应式(※※※)网格布局(超出换行)

8、网页宠物(左下角)(Plugin)

9、返回顶部(黏性标签-联系客服)

10、canvas的应用(星空点绘制-拓展可以做樱花飞舞)

11、加载动画(简单:gif --进阶- 用svg画一个,然后加CSS动画)

12、轮播图 (用的大佬的)

13、图片-遮罩

14、响应式导航


TODO

1、图表

2、时钟

3、登录-注册页

4、表格


借用大佬的素材:

https://space.bilibili.com/266664645

时间轴、轮播图

还用了好几位大佬的素材,但是链接找不到了,呜呜呜

四、首页代码

<code><!DOCTYPE html>

<!-- Created By CodingNepal -->

<html lang="en" dir="ltr">code>

<head>

<meta charset="utf-8">code>

<link rel="apple-touch-icon" sizes="76x76" href="./assets/img/favicon.ico">code>

<link rel="icon" type="image/png" href="./assets/img/favicon.ico">code>

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />code>

<title>星游记模仿网页</title>

<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no'code>

name='viewport' />code>

<!-- Main CSS -->

<link href="./assets/css/main.css" rel="stylesheet" />code>

<!-- Animation CSS -->

<link href="./assets/css/vendor/aos.css" rel="stylesheet" />code>

<!-- 顶部导航 CSS -->

<link rel="stylesheet" href="./assets-nav/index.css">code>

<meta name="viewport" content="width=device-width, initial-scale=1.0">code>

<!-- Google Font -->

<link href="https://fonts.googleapis.com/css?family=Nunito:300,300i,400,600,800" rel="stylesheet">code>

<script src="https://kit.fontawesome.com/a076d05399.js"></script>code>

<!-- Google Font -->

<link href="https://fonts.googleapis.com/css?family=Nunito:300,300i,400,600,800" rel="stylesheet">code>

<!-- Font Awesome Icons -->

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css"code>

integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">code>

<!-- 打字机 -->

<link href="./assets-print/print.css" rel="stylesheet">code>

<!-- 加载效果 -->

<link href="./assets-loading/loading.css" rel="stylesheet">code>

<script src="./assets-loading/loading.js"></script>code>

<!-- 鼠标指针 -->

<link href="./assets-plugin/plugin.css" rel="stylesheet">code>

</head>

<body onload="gif_init()">code>

<!-- 加载动画 JS和CSS在loading文件里 -->

<div id="loading" class="gif">code>

<img src="./assets/image/cat-loading150x150.gif" />code>

</div>

<!--初音未来 plugin文件里-->

<div class="cywl">code>

<img src="https://external-30160.picsz.qpic.cn/39ff4096c204652d7c7b56418fb37631" width="65px" height="65px"code>

id="d" onclick="c();">code>

</div>

<nav id="id-navbar">code>

<div class="menu-icon">code>

<span class="fas fa-bars"></span>code>

</div>

<div class="logo">code>

星游记</div>

<div class="nav-items">code>

<li><a href="./01-index.html">首页</a></li>code>

<li><a href="./02-recommend.html">人物介绍</a></li>code>

<li><a href="./03-episode.html">剧情介绍</a></li>code>

<li><a href="./04-other.html">更多图片</a></li>code>

<li><a href="https://www.bilibili.com/video/BV1om4y147ZM">续集链接</a></li>code>

</div>

<div class="search-icon">code>

<span class="far fa-user"></span>code>

</div>

<div class="cancel-icon">code>

<span class="fas fa-times"></span>code>

</div>

<button type="submit" class="far fa-user my-button"> 登录</button>code>

</nav>

<!-- 大图片 -->

<!-- Card Overlay -->

<div class="card bg-dark overlay overlay-black text-white shadow-lg border-0">code>

<img class="card-img responsive-img " src="./assets/image/1.jpg" alt="Card image">code>

<div class="card-img-overlay d-flex align-items-center text-center">code>

<div class="card-body">code>

<h3 class="card-title"><span id="my-text" class="text"></span></h3>code>

<p class="card-text text-muted">code>

不管黑暗怎样蔓延,总有星星,去把它照亮!

</p>

<a href="https://space.bilibili.com/279540198" class="btn btn-primary btn-round">JUST DO IT</a>code>

</div>

</div>

</div>

<!-- 用 innerHTML 插入文本到网页中有可能成为网站攻击的媒介,从而产生潜在的安全风险问题。所以HTML 5 中指定不执行由 innerHTML 插入的 -->

<!-- 打字机JS -->

<script>

// 打字机

var text = document.getElementById('my-text');

const txt = ["相信奇迹的人,本身和奇迹一样了不起!", "给我高高的飞起来啊!", "拉勾的事情,就一定要做到!"];

var index = 0;

var xiaBiao = 0;

var huan = true;

setInterval(function () {

if (huan) {

text.innerHTML = txt[xiaBiao].slice(0, ++index);

console.log(index);

}

else {

text.innerHTML = txt[xiaBiao].slice(0, index--);

console.log(index);

}

if (index == txt[xiaBiao].length + 3) {

huan = false;

}

else if (index < 0) {

index = 0;

huan = true;

xiaBiao++;

if (xiaBiao >= txt.length) {

xiaBiao = 0;

}

}

}, 200)

</script>

<!-- 主体 -->

<div class="container" style="margin-top: 100px; margin-bottom: 100px;">code>

<h3 class="h5 mb-4 font-weight-bold">人物语录</h3>code>

<!-- 人物话语 -->

<div class="card-deck card-pricing text-center" data-aos="fade-up">code>

<div class="card border-0 card-ddd">code>

<img class="card-img-top litter-img" src="./assets/image/gudong.png" alt="Card image cap">code>

<div class="card-body">code>

<ul class="list-unstyled mt-3 mb-4">code>

<li>王冠的真正含义是:</li>

<li>我会为你们抵挡一切</li>

<li>永远让你们只看到</li>

<li>金色的希望!</li>

</ul>

<button type="button" class="btn btn-primary">咕咚国王</button>code>

</div>

</div>

<div class="card border-0 card-ddd">code>

<img class="card-img-top litter-img" src="./assets/image/111.jpg" alt="Card image cap">code>

<div class="card-body">code>

<ul class="list-unstyled mt-3 mb-4">code>

<li>如果黑洞能吞下</li>

<li>一百亿个太阳</li>

<li>我就是———</li>

<li>一百亿零一个!</li>

</ul>

<button type="button" class="btn btn-primary">麦当</button>code>

</div>

</div>

<div class="card border-0 card-ddd">code>

<img class="card-img-top litter-img" src="./assets/image/4.jpeg" alt="Card image cap">code>

<div class="card-body">code>

<ul class="list-unstyled mt-3 mb-4">code>

<li>星空之所以美丽</li>

<li>就是因为在无限的宇宙中</li>

<li>不管黑暗如何蔓延</li>

<li>都有星星的光芒去把它照亮!</li>

</ul>

<button type="button" class="btn btn-primary">迪亚</button>code>

</div>

</div>

<div class="card border-0 card-ddd">code>

<img class="card-img-top litter-img" src="./assets/image/6.jpg" alt="Card image cap">code>

<div class="card-body">code>

<ul class="list-unstyled mt-3 mb-4">code>

<li>把所有人</li>

<li>都踩在脚下</li>

<li>才能到达的顶峰</li>

<li>还能看到什么风景?</li>

</ul>

<button type="button" class="btn btn-primary">米龙</button>code>

</div>

</div>

</div>

<!-- 照片集 -->

<section class="pt-4 bg-other rounded" style="margin-top: 50px;" data-aos="zoom-in">code>

<div class="container text-center">code>

<h3 class="">照片集</h3>code>

<div class="row p-3">code>

<div class="col-md-4 " style="margin-bottom: 30px;">code>

<a href="./landing.html"><img src="assets/image/gudddd.png" class="shadow-lg litter-img"></a>code>

</div>

<div class="col-md-4 " style="margin-bottom: 30px;">code>

<a href="./login.html"><img src="assets/image/mai.png" class="shadow-lg litter-img"></a>code>

</div>

<div class="col-md-4 " style="margin-bottom: 30px;">code>

<a href="./blog.html"><img src="assets/image/diya.png" class="shadow-lg litter-img"></a>code>

</div>

<div class="col-md-4 " style="margin-bottom: 30px;">code>

<a href="./blog.html"><img src="assets/image/duiz.png" class="shadow-lg litter-img"></a>code>

</div>

<div class="col-md-4 " style="margin-bottom: 30px;">code>

<a href="./blog.html"><img src="assets/image/feili.png" class="shadow-lg litter-img"></a>code>

</div>

<div class="col-md-4 " style="margin-bottom: 30px;">code>

<a href="./blog.html"><img src="assets/image/mi.png" class="shadow-lg litter-img"></a>code>

</div>

</div>

</div>

</section>

</div>

<!-- 左边黏性标签 -->

<div id="id-stick" class="stick-box bg-transparent">code>

<div class="stick-text">code>

📠 联系客服

</div>

</div>

<!-- 左边黏性标签 -->

<style>

.stick-box {

position: fixed;

/* 盒子大小 */

width: 50px;

height: 150px;

z-index: 999;

/* 左下角 */

left: 0%;

bottom: 60%;

/* 水平垂直居中 */

display: flex;

justify-content: center;

align-items: center;

border-top-right-radius: 10px;

/* 添加右上角圆角属性 */

border-bottom-right-radius: 10px;

/* 添加右下角圆角属性 */

box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);

/* 添加阴影 */

}

.stick-text {

/* 属性设置了文字的书写模式为竖排,vertical-rl 的意思是从上到下,从右到左排列文字 */

writing-mode: vertical-rl;

/* 属性设置了文字排列方向为混合方向,当在竖排模式下,该属性可以让文字既不会上下倒置,也不会左右倒置。 */

text-orientation: mixed;

font-size: 20px;

/* 属性设置了行高为字体高度的 1.2 倍,用来控制文字的行距。 */

line-height: 4;

color: #fff;

margin: auto;

}

/* 媒体查询 响应式 0-700px生效 */

@media (max-width: 700px) {

.stick-box {

width: 30px;

height: 100px;

}

.stick-text {

font-size: 14px;

/* 当屏幕宽度小于400px时,黏性标签的字体大小变为 16px */

}

}

</style>

<!-- 右边黏性标签 -->

<!-- sticky tag -->

<div id="sticky-tag" class="sticky-tag bg-only" onclick="scrollToTop()">code>

<div class="right-stikc-text">code>

<!-- <i class="fal fa-angle-double-up"></i> -->code>

顶部

</div>

</div>

<!-- 右边黏性标签 -->

<style>

/* 定义样式 */

.sticky-tag {

position: fixed;

/* 左下角 */

right: -100px;

bottom: 10%;

transform: translateY(-50%);

/* 盒子大小 */

width: 50px;

height: 50px;

z-index: 999;

/* 水平垂直居中 */

display: flex;

justify-content: center;

align-items: center;

/* 添加圆角属性 */

border-radius: 50%;

/* 添加阴影 */

box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);

color: #fff;

text-align: center;

line-height: 30px;

cursor: pointer;

opacity: 0;

transition: all .3s ease-in-out;

}

.sticky-tag.show {

right: 20px;

opacity: 1;

}

.right-stikc-text {

/* 属性设置了文字的书写模式为竖排,vertical-rl 的意思是从上到下,从右到左排列文字 */

writing-mode: vertical-rl;

/* 属性设置了文字排列方向为混合方向,当在竖排模式下,该属性可以让文字既不会上下倒置,也不会左右倒置。 */

text-orientation: mixed;

font-size: 14px;

/* 属性设置了行高为字体高度的 1.2 倍,用来控制文字的行距。 */

line-height: 4;

color: #fff;

margin: auto;

}

/* 媒体查询 响应式 0-700px生效 */

@media (max-width: 700px) {

.sticky-tag {

width: 30px;

height: 30px;

}

.right-stikc-text {

font-size: 8px;

/* 当屏幕宽度小于400px时,黏性标签的字体大小变为 16px */

}

}

</style>

<!-- 音乐盒子 -->

<!-- 音乐CSS -->

<link rel="stylesheet" href="./assets-music/style.css">code>

<link rel="stylesheet" href="./assets-music/icon/iconfont.css">code>

<link href="./assets-music/style.css" rel="stylesheet">code>

<div class="music-box">code>

<!-- 播放器 -->

<div class="player">code>

<!-- 音乐插图 -->

<section class="img">code>

<img id="bg-img" src="" alt="">code>

</section>

<!-- 信息 -->

<section class="info">code>

<!-- 进度栏 -->

<div class="progress">code>

<div id="start">0:00</div>code>

<div id="bar"></div>code>

<div id="end">3:15</div>code>

</div>

<!-- 歌曲信息 -->

<div class="song-detail">code>

<span id="title"></span>code>

<span id="author"></span>code>

</div>

<!-- 按钮区域 -->

<div id="controls" class="controls">code>

<span><i id="list" class="iconfont icon-danlieliebiao"></i></span>code>

<div class="play">code>

<span><i id="voice" class="iconfont icon-shengyin_shiti"></i></span>code>

<span><i id="pre" class="iconfont icon-shangyishou"></i></span>code>

<span><i id="play" class="iconfont icon-24gf-play"></i></span>code>

<span><i id="next" class="iconfont icon-xiayishou2"></i></span>code>

<span><i id="mode" class="iconfont icon-suiji"></i></span>code>

</div>

<span><i id="" class="iconfont icon-tianjia"></i></span>code>

</div>

</section>

<!-- audio标签 -->

<section class="audio">code>

<audio id="audio" controls src="">code>

</audio>

</section>

</div>

<!-- 箭头 -->

<div class="right-arrow">code>

<div class="fuhao">code>

&gt;

</div>

</div>

</div>

<!-- 音乐js -->

<script src="./assets-music/script.js"></script>code>

<script>

var arrow = document.querySelector(".right-arrow");

var music = document.querySelector(".music-box");

var fuhao = document.querySelector(".fuhao");

var isFlipped = false;

arrow.addEventListener("click", function () {

if (isFlipped) {

music.classList.remove("show");

fuhao.classList.remove("flip");

isFlipped = false;

arrow.setAttribute("transform", "rotate(0)");

} else {

fuhao.classList.add("flip");

isFlipped = true;

arrow.setAttribute("transform", "rotate(180)");

music.classList.add("show");

}

});

</script>

<!-- 尾部 footer -->

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"code>

x="0px" y="0px" viewBox="0 0 1440 126" style="enable-background:new 0 0 1440 126;" xml:space="preserve">code>

<path class="bg-them" d="M685.6,38.8C418.7-11.1,170.2,9.9,0,30v96h1440V30C1252.7,52.2,1010,99.4,685.6,38.8z">code>

</path>

</svg>

<footer class="bg-them pb-5">code>

<div class="container">code>

<div class="row">code>

<div class="col-12 col-md mr-4">code>

<i class="fas fa-copyright text-white"></i>code>

<small class="d-block mt-3 mb-3 text-white">© 2023 Pan Peter</small>code>

</div>

<div class="col-6 col-md">code>

<h5 class="mb-4 text-white">星游记官网</h5>code>

<ul class="list-unstyled text-small">code>

<li><a class="text-white" href="#">风暴法米拉1</a></li>code>

<li><a class="text-white" href="#">风暴法米拉2</a></li>code>

<li><a class="text-white" href="#">剧场版1</a></li>code>

<li><a class="text-white" href="#">剧场版2</a></li>code>

</ul>

</div>

<div class="col-6 col-md">code>

<h5 class="mb-4 text-white">我们的故事</h5>code>

<ul class="list-unstyled text-small">code>

<li><a class="text-white" href="#">世界观</a></li>code>

<li><a class="text-white" href="#">人物小专</a></li>code>

<li><a class="text-white" href="#">故事脚本</a></li>code>

<li><a class="text-white" href="#">动画制作</a></li>code>

</ul>

</div>

<div class="col-6 col-md">code>

<h5 class="mb-4 text-white">能力解说</h5>code>

<ul class="list-unstyled text-small">code>

<li><a class="text-white" href="#">势力</a></li>code>

<li><a class="text-white" href="#">道具</a></li>code>

<li><a class="text-white" href="#">时空</a></li>code>

<li><a class="text-white" href="#">科技</a></li>code>

</ul>

</div>

<div class="col-6 col-md">code>

<h5 class="mb-4 text-white">关于我们</h5>code>

<ul class="list-unstyled text-small">code>

<li><a class="text-white" href="#">团队介绍</a></li>code>

<li><a class="text-white" href="#">获奖记录</a></li>code>

<li><a class="text-white" href="#">幕后制作</a></li>code>

<li><a class="text-white" href="#">制作发行</a></li>code>

</ul>

</div>

</div>

</div>

</footer>

<!-- nav 顶部导航 JS -->

<script>

const menuBtn = document.querySelector(".menu-icon span");

const searchBtn = document.querySelector(".search-icon");

const cancelBtn = document.querySelector(".cancel-icon");

const items = document.querySelector(".nav-items");

const form = document.querySelector("form");

menuBtn.onclick = () => {

items.classList.add("active");

menuBtn.classList.add("hide");

searchBtn.classList.add("hide");

cancelBtn.classList.add("show");

}

cancelBtn.onclick = () => {

items.classList.remove("active");

menuBtn.classList.remove("hide");

searchBtn.classList.remove("hide");

cancelBtn.classList.remove("show");

form.classList.remove("active");

cancelBtn.style.color = "#fff";

}

searchBtn.onclick = () => {

form.classList.add("active");

searchBtn.classList.add("hide");

cancelBtn.classList.add("show");

}

</script>

<!-- 顶部导航-黏性标签 变色&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -->

<script>

const stickyTag = document.getElementById('sticky-tag');

const navbar = document.getElementById('id-navbar');

const scrollOffset = 400;

const stick = document.getElementById('id-stick');

window.addEventListener('scroll', function () {

if (window.pageYOffset > 400) {

stickyTag.classList.add('show');

navbar.classList.add('bg-primary'); // 添加背景蓝色样式

navbar.classList.remove('bg-transparent'); // 移除透明背景样式

navbar.classList.add('fixed-top'); // 添加 fixed-top 样式

stick.classList.add('bg-only'); // 添加背景蓝色样式

stick.classList.remove('bg-transparent'); // 移除透明背景样式

} else {

stickyTag.classList.remove('show');

navbar.classList.remove('bg-primary'); // 移除背景蓝色样式

navbar.classList.add('bg-transparent'); // 添加透明背景样式

stick.classList.remove('bg-only'); // 移除背景蓝色样式

stick.classList.add('bg-transparent'); // 添加透明背景样式

}

});

</script>

<!-- JS plugin -->

<!-- 鼠标点击烟花爆炸效果 -->

<script type="text/javascript" src="https://api.azpay.cn/729/2.js"></script>code>

<!--------------------------------------

JAVASCRIPTS

--------------------------------------->

<script src="./assets/js/vendor/jquery.min.js" type="text/javascript"></script>code>

<script src="./assets/js/vendor/popper.min.js" type="text/javascript"></script>code>

<script src="./assets/js/vendor/bootstrap.min.js" type="text/javascript"></script>code>

<script src="./assets/js/vendor/share.js" type="text/javascript"></script>code>

<!-- Animation -->

<script src="./assets/js/vendor/aos.js" type="text/javascript"></script>code>

<noscript>

<style>

*[data-aos] {

display: block !important;

opacity: 1 !important;

visibility: visible !important;

}

</style>

</noscript>

<script>

AOS.init({

duration: 700

});

</script>

<!-- Disable animation on less than 1200px, change value if you like -->

<script>

AOS.init({

disable: function () {

var maxWidth = 1200;

return window.innerWidth < maxWidth;

}

});

</script>

</body>

</html>


 视频

电石QwQ的个人空间-电石QwQ个人主页-哔哩哔哩视频哔哩哔哩电石QwQ的个人空间,提供电石QwQ分享的视频、音频、文章、动态、收藏等内容,关注电石QwQ账号,第一时间了解UP注动态。不甘寂寞

https://space.bilibili.com/279540198



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。