动态轮播图网页效果的实现
实现一个HTML5的轮播图网页效果
一、项目流程
- 创建基本的HTML结构
- 使用CSS美化网页
- 添加JavaScript交互效果
- 测试和优化网页的效果
二、实现步骤
1. 创建基本的HTML结构
首先,我们需要一个简单的HTML文件,来搭建页面的骨架。
这里我们定义了网页的结构,包含标题、按钮并引入了CSS、JavaScript文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>JS轮播图</title>
<link rel="stylesheet" href="css/index.css" />
<script type="text/javascript" src="js/index.js" ></script>
</head>
<body>
<div class="main" id="main">
<!--图片轮播-->
<div class="banner" id="banner">
<a href="javascript:void(0)">
<div class="banner_slide slide1 slide_active" ></div>
</a>
<a href="Javascript:void(0)">
<div class="banner_slide slide2"></div>
</a>
<a href="javascript:void(0)">
<div class="banner_slide slide3"></div>
</a>
</div>
<!--左,右按钮-->
<!--a标签不做任何超链接跳转-->
<a href="javascript:void(0)" class="button prev" id="left"></a>
<a href="javascript:void(0)" class="button next" id="right"></a>
<!--圆点导航-->
<div class="dots" id="dots">
<span class="active"></span>
<span></span>
<span></span>
</div>
</div>
</body>
</html>
2.使用CSS美化网页
我们需要创建一个外部的CSS文件 index.css,用来编辑设置样式。
*{
margin: 0px;
padding: 0px;
}
.main{
width: 1200px;
height: 460px;
margin: 30px auto;
overflow: hidden;
position: relative;
border: 6px solid black;
border-radius:10px;
}
.banner{
width: 1200px;
height: 460px;
overflow: hidden;
position: relative;
}
.banner_slide{
width: 1200px;
height: 460px;
overflow: hidden;
position: absolute;
display: none;
}
.slide_active{
display: block;
}
.slide1{
background-image: url(../img/bg1.jpg);
}
.slide2{
background-image: url(../img/bg2.jpg);
}
.slide3{
background-image: url(../img/bg3.jpg);
}
.button{
position: absolute;
width: 40px;
height: 80px;
left: 0px;
top: 50%;
background: url(../img/arrow.png) no-repeat center center;
margin-top: -40px;
}
.prev{
transform: rotate(180deg);
}
.next{
left: auto;
right: 0px;
}
.button:hover{
background-color: #333;
opacity: 0.7;
}
.dots{
position: absolute;
right: 20px;
bottom: 24px;
text-align: right;
}
.dots span{
width: 12px;
height: 12px;
background-color: rgba(7,17,17,0.4);
display: inline-block;
border-radius: 6px;
box-shadow: 0px 0px 0px 2px rgba(255,255,255,0.8) inset;
margin-left: 8px;
cursor: pointer; /*鼠标手指*/
}
.dots span.active{
/*background-color:#fff;*/
background-color: red;
box-shadow: 0px 0px 0px 2px rgba(7,17,17,0.4) inset;
}
3.添加JavaScript代码实现动态倒计时功能效果
我们需要创建一个外部的JS文件 index.js,用来编辑设置动态轮播图的操作。
window.onload = banner;
function banner(){
//封装一个代替getElementById()的方法
function byId(id){
//W3C标准不允许id为number
return typeof(id) === "string" ? document.getElementById(id) : id;
}
console.log(byId("right"));
var index = 0,
timer = null,
pics = byId("banner").getElementsByTagName("div"),
len = pics.length,
dots = byId("dots").getElementsByTagName("span"),
right =byId("right"),
left = byId("left");
//console.log(len);
function slideImg(){
var main = byId("main");
//划过清除定时器,离开继续
main.onmouseover = function(){
//划过清除定时器
if(timer){
clearInterval(timer);
}
}
main.onmouseout = function(){
timer = setInterval(function(){
index++;
if(index >= len){
index = 0;
}
//console.log(index);
//切换图片
changeImg();
},1500)
}
//自动在main上触发鼠标离开事件
main.onmouseout();
//遍历所有的圆点,且绑定点击事件,点击圆点切换图片
for(var d = 0; d < len; d++){
//给所有span添加一个id属性,值为d,作为当前span的索引
dots[d].id = d;
dots[d].onclick = function(){
//改变index为当前span的索引
index = this.id;
//调用changeImg()实现切换图片
changeImg();
}
}
//下一张
right.onclick = function(){
index++;
if(index >= len){
index = 0;
}
//调用changeImg()实现切换图片
changeImg();
}
//上一张
}
//切换图片
function changeImg(){
//遍历banner所有的div及dots下所有的span,将div隐藏,将span清除类
for(var i = 0; i < len; i++){
pics[i].style.display = "none";
dots[i].className ="";
}
//根据index索引找到当前的div和当前span,将其显示出来和设置为当前
pics[index].style.display = "block";
dots[index].className = "active";
}
slideImg();
}
4. 测试和优化
完成以上步骤后,务必确保在不同设备和浏览器上测试你的页面,查看响应式设计是否有效,并对代码进行优化。例如,确保CSS选择器高效,避免过多的DOM操作等。
三、效果展示
项目下载地址
来源:默认下载
阅读剩余
版权声明:
作者:Lonelycity
链接:https://share.xy302.cn/111.html
文章版权归作者所有,未经允许请勿转载。
THE END