前言
本实例为html+css+js。该实例设置导航栏效果效果、动态轮播特效、DIV、Banner、注册、登录页面等实例比较全面,有助于各位大小朋友学习,本文以“音乐”网站为主题来设计实践,介绍如何通过从头开始设计音乐网站并将其转换为代码的过程。
一、网页介绍
1.网页简介
此实例系统文件种类包含:HTML结构文件、css网页样式文件、js网页特效文件、images网页图片文件;画面精明,代码简短,为简单学生水平, 非常适合初学者学习使用。
2.网页编辑
网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++ 等任意html编辑软件进行运行及修改编辑等操作)。兼容各大主流浏览器、显示效果稳定的浮动网页布局结构,已达到打开后就能即时看到网站的效果。
3.知识应用
采用最新的网页编程语言HTML5+CSS3+JS程序语言完成网站的功能设计,js动态轮播特效, 点击事件、导航栏效果、DIV、Banner、注册、登录页面等。
二、网页效果
提示:以下是本篇文章正文内容,下面案例供参考:
三、代码展示
1.HTML
代码如下(节选示例):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>首页</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="top">
<div class="logo"><img src="images/logo.png" /></div>
<div class="nav">
<ul>
<li><a href="index.html">网站首页</a></li>
<li><a href="gedan.html">全部歌单</a></li>
<li><a href="paihang.html">排行榜</a></li>
<li><a href="denglu.html">会员登陆</a></li>
<li><a href="zhuce.html">会员注册</a></li>
</ul>
</div>
</div>
<div class="box" id="box">
<div class="inner">
<!--轮播图-->
<ul>
<li><a href="#"><img src="images/banner1.jpg" alt=""></a></li>
<li><a href="#"><img src="images/banner2.jpg" alt=""></a></li>
<li><a href="#"><img src="images/banner3.jpg" alt=""></a></li>
</ul>
<ol class="bar">
</ol>
<!--左右焦点-->
<div id="arr">
<span id="left">
<
</span>
<span id="right">
>
</span>
</div>
</div>
</div>
<script type="text/javascript" src="js/banner.js"></script>
<div class="box1">
<div class="title">歌单推荐</div>
<div class="tit">
<ul>
<li><a href="#">为你推荐</a></li>
<li><a href="#">经典国语</a></li>
<li><a href="#">轻音乐</a></li>
<li><a href="#">节奏控</a></li>
<li><a href="#">官方歌单</a></li>
<li><a href="#">情歌</a></li>
</ul>
</div>
<div class="box1-ner">
<ul>
<li>
<img src="images/img1.jpg" />
<h1><a href="#">写作业洗脑英文【刷题BGM】</a></h1>
<h2>播放量:10.9万</h2>
</li>
<li>
<img src="images/img7.jpg" />
<h1><a href="#"> 华语流行 · 让心被快乐填满 </a></h1>
<h2>播放量:6.3万</h2>
</li>
<li>
<img src="images/img8.jpg" />
<h1><a href="#"> 请问住我心里的你,房租交了么? </a></h1>
<h2>播放量:2.5万</h2>
</li>
<li>
<img src="images/img9.jpg" />
<h1><a href="#"> 国产轻音:看书的时光要你陪伴 </a></h1>
<h2>播放量:36.2万</h2>
</li>
<li class="mar0">
<img src="images/img10.jpg" />
<h1><a href="#"> 运动歌曲|网球锻炼节奏感 </a></h1>
<h2>播放量:1.6万</h2>
</li>
</ul>
</div>
</div>
<div class="box2">
<div class="title">歌单推荐</div>
<div class="box2-ner">
<ul>
<li class="bg1">
<h1>巅峰榜</h1>
<h2><a href="#">热歌</a></h2>
<h3></h3>
<h4><a href="neirong02.html">1 桥边姑娘</a></h4>
<h5><a href="neirong02.html"> 张茜</a></h5>
<h4><a href="neirong04.html">1 世界这么大还是遇见你</a></h4>
<h5><a href="neirong04.html"> 程响</a></h5>
<h4><a href="neirong06.html">3 武汉伢</a></h4>
<h5><a href="neirong06.html"> 陈戈 / 陈晶晶 / 陈思同</a></h5>
</li>
<li class="bg2">
<h1>巅峰榜</h1>
<h2><a href="#">新歌</a></h2>
<h3></h3>
<h4><a href="neirong04.html">1 世界这么大还是遇见你</a></h4>
<h5><a href="neirong04.html"> 程响</a></h5>
<h4><a href="neirong05.html">2 无期</a></h4>
<h5><a href="neirong05.html"> 光头华夏</a></h5>
<h4><a href="neirong06.html">3 武汉伢</a></h4>
<h5><a href="neirong06.html"> 陈戈 / 陈晶晶 / 陈思同</a></h5>
</li>
<li class="bg3">
<h1>巅峰榜</h1>
<h2><a href="#">流行指数</a></h2>
<h3></h3>
<h4><a href="neirong02.html">1 桥边姑娘 (Live)</a></h4>
<h5><a href="neirong02.html"> 张茜</a></h5>
<h4><a href="neirong01.html">2 大眠 (温柔男声)</a></h4>
<h5><a href="neirong01.html"> 王茗</a></h5>
<h4><a href="neirong08.html">3 竹石 (Live)</a></h4>
<h5><a href="neirong08.html"> 肖战</a></h5>
</li>
<li class="bg4">
<h1>巅峰榜</h1>
<h2><a href="#">欧美</a></h2>
<h3></h3>
<h4><a href="#">1 Get Me</a></h4>
<h5><a href="#"> Justin Bieber/Kehlani</a></h5>
<h4><a href="#">2 Yummy</a></h4>
<h5><a href="#"> Justin Bieber</a></h5>
<h4><a href="#">3 Forever Yours (Avicii T</a></h4>
<h5><a href="#"> Kygo/Avicii/Sandro C</a></h5>
</li>
<li class="bg5 mar0">
<h1>巅峰榜</h1>
<h2><a href="#">韩国</a></h2>
<h3></h3>
<h4><a href="#">1 Go away go away</a></h4>
<h5><a href="#"> 灿烈 (찬열)/PUNCH (</a></h5>
<h4><a href="#">2 자꾸 더 보고싶은 사람 </a></h4>
<h5><a href="#"> MAMAMOO (마마무)</a></h5>
......
2.CSS
代码如下(节选示例):
body{ margin:0 auto; font-size:12px; font-family: "微软雅黑",arial; line-height:22px; }
div,p,input,li,h1,h2,h3,h4,h5{ height:auto; margin:0; padding:0px;vertical-align:middle ;}
li{ list-style:none;}
a{ text-decoration:none; color:#000;}
img{ border:0; margin:0; padding:0;}
.top{ height:105px; width:1200px; margin:0 auto; }
.logo{ width:240px; height:80px; float:left; margin-top:20px;}
.nav{ width:550px; height:40px; margin-top:40px; float:right;}
.nav ul{ padding:0px; margin:0px;}
.nav ul li{ margin:0px 15px; float:left; height:40px; line-height:40px;}
.nav ul li a{ line-height:40px; font-size:18px;}
.box {
width:1200px;
height:600px;
margin:0 auto;
}
.inner{
width:1200px;
height:600px;
position: relative;
overflow: hidden;
}
.inner img{
width:1200px;
height:600px;
vertical-align: top
}
.inner ul {
width: 1000%;
position: absolute;
list-style: none;
left:0;
top: 0;
margin:0px;
padding:0px;
}
.inner li{
float: left;
}
ol {
position: absolute;
height: 20px;
right: 20px;
bottom: 12px;
text-align: center;
padding: 5px;
}
ol li{
display: block;
width: 20px;
height: 20px;
line-height: 20px;
background-color: #fff;
margin: 5px;
cursor: pointer;
}
ol .current{
background-color: red;
}
#arr{
display: block;
}
#arr span{
width: 30px;
height: 40px;
position: absolute;
left: 14px;
top: 300px;
margin-top: -20px;
background: #fff;
cursor: pointer;
line-height: 40px;
text-align: center;
font-weight: bold;
font-family: '黑体';
font-size: 30px;
color: #000;
opacity: 0.5;
border: 1px solid #fff;
}
#arr #right {
right: 18px;
left: auto;
}
.box1{ height:440px; width:1200px; margin:0 auto;}
.title{ height:60px; margin-top:20px; line-height:60px; font-size:24px; text-align:center; font-weight:bold;}
.tit{ width:640px; height:40px; margin:0 auto;}
.tit ul{ margin:0px; padding:0px;}
.tit ul li { float:left; margin:0px 25px; line-height:40px;}
.tit ul li a{ font-size:16px;}
.box1-ner{ width:1200px; height:300px;}
.box1-ner ul{ padding:0px;}
.box1-ner ul li{ width:224px; height:300px; float:left; margin-right:20px;}
.mar0{ margin-right:0px !important;}
.box1-ner ul li img{ width:224px; height:224px; margin-bottom:15px;}
.box1-ner ul li h1{ height:25px; line-height:25px; font-size:14px; font-weight:normal;}
.box1-ner ul li h1 a{ color:#000;}
.box1-ner ul li h2{ height:25px; line-height:25px; font-size:14px; font-weight:normal; color:#b3afaf;}
.box2{ height:640px; width:1200px; margin:0 auto;}
.box2-ner{ height:500px;}
.box2-ner ul{ padding:0px;}
.box2-ner ul li{ width:224px; height:500px; float:left; margin-right:20px;}
.box2-ner ul li h1{ height:40px; line-height:40px; margin-top:40px; text-align:center; font-size:18px; font-weight:normal;color:#FFF;}
.box2-ner ul li h2{ height:40px; line-height:40px; text-align:center; font-size:22px;}
.box2-ner ul li h2 a{ color:#FFF;}
.box2-ner ul li h3{ display:block; width:40px; height:30px; margin:0 auto; border-bottom:#FFF 2px solid; margin-bottom:20px;}
.box2-ner ul li h4{ height:30px; line-height:30px; padding-left:30px; font-size:14px; font-weight:normal;}
.box2-ner ul li h4 a{ color:#FFF;}
.box2-ner ul li h5{ height:30px; line-height:30px; padding-left:30px; font-size:14px; font-weight:normal; margin-bottom:20px;}
.box2-ner ul li h5 a{ color:#FFF;}
.bg1{ background:url(../images/img2.jpg) no-repeat;}
.bg2{ background:url(../images/img3.jpg) no-repeat;}
......
3.JS
代码如下(节选示例):
/**
*
* @param id 传入元素的id
* @returns {HTMLElement | null} 返回标签对象,方便获取元素
*/
function my$(id) {
return document.getElementById(id);
}
//获取各元素,方便操作
var box=my$("box");
var inner=box.children[0];
var ulObj=inner.children[0];
var list=ulObj.children;
var olObj=inner.children[1];
var arr=my$("arr");
var imgWidth=inner.offsetWidth;
var right=my$("right");
var pic=0;
//根据li个数,创建小按钮
for(var i=0;i<list.length;i++){
var liObj=document.createElement("li");
olObj.appendChild(liObj);
liObj.innerText=(i+1);
liObj.setAttribute("index",i);
//为按钮注册mouseover事件
liObj.onmouseover=function () {
//先清除所有按钮的样式
for (var j=0;j<olObj.children.length;j++){
olObj.children[j].removeAttribute("class");
}
this.className="current";
pic=this.getAttribute("index");
animate(ulObj,-pic*imgWidth);
}
}
//设置ol中第一个li有背景颜色
olObj.children[0].className = "current";
//克隆一个ul中第一个li,加入到ul中的最后=====克隆
ulObj.appendChild(ulObj.children[0].cloneNode(true));
var timeId=setInterval(onmouseclickHandle,2000);
//左右焦点实现点击切换图片功能
box.onmouseover=function () {
arr.style.display="block";
clearInterval(timeId);
};
box.onmouseout=function () {
arr.style.display="none";
timeId=setInterval(onmouseclickHandle,2000);
};
right.onclick=onmouseclickHandle;
function onmouseclickHandle() {
//如果pic的值是5,恰巧是ul中li的个数-1的值,此时页面显示第六个图片,而用户会认为这是第一个图,
//所以,如果用户再次点击按钮,用户应该看到第二个图片
if (pic == list.length - 1) {
//如何从第6个图,跳转到第一个图
pic = 0;//先设置pic=0
ulObj.style.left = 0 + "px";//把ul的位置还原成开始的默认位置
}
pic++;//立刻设置pic加1,那么此时用户就会看到第二个图片了
animate(ulObj, -pic * imgWidth);//pic从0的值加1之后,pic的值是1,然后ul移动出去一个图片
//如果pic==5说明,此时显示第6个图(内容是第一张图片),第一个小按钮有颜色,
if (pic == list.length - 1) {
//第五个按钮颜色干掉
olObj.children[olObj.children.length - 1].className = "";
//第一个按钮颜色设置上
olObj.children[0].className = "current";
} else {
//干掉所有的小按钮的背景颜色
for (var i = 0; i < olObj.children.length; i++) {
olObj.children[i].removeAttribute("class");
}
olObj.children[pic].className = "current";
}
}
left.onclick=function () {
if (pic==0){
pic=list.length-1;
ulObj.style.left=-pic*imgWidth+"px";
}
pic--;
animate(ulObj,-pic*imgWidth);
for (var i = 0; i < olObj.children.length; i++) {
olObj.children[i].removeAttribute("class");
}
//当前的pic索引对应的按钮设置颜色
olObj.children[pic].className = "current";
};
......
四、总结
1. 页面分为页头、菜单导航栏(最好可下拉)、中间内容板块、页脚四大部分;
2. 所有页面相互超链接,可到二级或三级页面,有5-10个页面组成;
3. 页面样式风格统一布局显示正常,不错乱,使用HTML5+CSS3+JS技术;
4. 菜单美观、醒目,二级菜单可正常弹出与跳转;
5. 要有JS特效,如定时切换和手动切换图片新闻;
6. 页面中有多媒体元素,如gif、视频、音乐,表单技术的使用;
7. 页面清爽、美观、大方,不雷同。
8. 网站前端程序不仅要能够把用户要求的内容呈现,还要满足布局良好、界面美观、配色优雅、表现形式多样等要求。
五、交流分享
1.【关注作者|获取更多源码(2000+个网页源码)|优质文章】;
2. 您的支持是我创作的动力!看到这里就【点赞收藏博文】,三连支持下吧,3Q!关注我带您学习各种前端插件、整站模板、3D炫酷效果、图片展示、文字效果、大学生毕业HTML、期末大作业模板案例等; 更多优质博客文章、网页模板点击以下链接查阅:仙女网页设计-CSDN博客。