Web前端开发 - 制作简单的焦点图效果

目录

任务描述

焦点图效果是各大网站常用的效果,下面利用数组实现简单的焦点图效果,页面上5张图片2秒轮换显示,单击向右图片实现播放下一张图片,图片向后继续2秒轮换显示,单击向左图片实现播放上一张图片,图片向前继续2秒轮换显示。

​编辑

任务分析

样例代码:


任务描述

焦点图效果是各大网站常用的效果,下面利用数组实现简单的焦点图效果,页面上5张图片2秒轮换显示,单击向右图片实现播放下一张图片,图片向后继续2秒轮换显示,单击向左图片实现播放上一张图片,图片向前继续2秒轮换显示。

任务分析

1.设计HTML页面,应用CSS美化页面。

2.定义数组,将轮换显示的图片地址保存到数组中。

3.定义两个全局变量,一个变量用于控制定时器,另一个变量用于控制数组下标。

4.定义函数实现图片的轮换显示。在函数中改变图片的地址,使用定时器函数,2秒更换图片地址,实现图片的轮流显示。

5.单击上一张或下一张按钮时将定时器清除,再重新调用图片轮换显示函数

样例代码:

javascript 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>实现带左右按钮控制焦点图片切换</title>
<style type="text/css">
*{margin:0;padding:0;}
ul,li{list-style:none;}
img{border:0;}
.wrapper{
	width: 800px;
	margin: 0 auto;
	padding-bottom: 50px;
}
#focus{
	width: 800px;
	height: 280px;
	overflow: hidden;
	position: relative;
}
#focus ul{
	height: 380px;
	position: absolute;
}
#focus ul li{
	float: left;
	width: 800px;
	height: 280px;
	overflow: hidden;
	position: relative;
	background: #000;
}
#focus ul li div{
	position: absolute;
	overflow: hidden;
}
#focus .preBtn{
	width: 45px;
	height: 100px;	
	left: 0;
	top:90px;
	background:url(images/spirte.png) no-repeat 0 0;
	background-color:#000;
	cursor: pointer;
	opacity:0.4;
	filter:alpha(opacity=40);
}
#focus .nextBtn{
	width: 45px;
	height: 100px;
	right:0px;
	top:90px;
	background:url(images/spirte.png) no-repeat right top;
	background-color:#000;
	cursor: pointer;	
	opacity:0.4;
	filter:alpha(opacity=40);}

</style>

<script type="text/javascript">
	var picsArr=new Array();
		picsArr[0]="images/01.jpg";
		picsArr[1]="images/02.jpg";
		picsArr[2]="images/03.jpg";
		picsArr[3]="images/04.jpg";
		picsArr[4]="images/05.jpg";	
	var timer,index=0;	
	window.onload=showPic;

	function showPic(){
		document.getElementById("pic").src=picsArr[index];
		if(index<(picsArr.length-1))
			index++;
		else
			index=0;
		timer=setTimeout("showPic()",1000);
	}

	function showNext()
	{
		
		clearTimeout(timer);
		showPic();
		
	}

	function showPre()
	{
		clearTimeout(timer);
		showPrepic();
		
	}
	
	function showPrepic()
	{		
		if(index>0)
			index--;
		else
			index=4;
		document.getElementById("pic").src=picsArr[index];
		timer=setTimeout("showPrepic()",2000);
	}
</script>
</head>

<body>
<div class="wrapper">
  <div id="focus">
    <ul>
      <li><a href="#" target="_blank"><img src="images/01.jpg" alt="" id="pic"/></a>
      <div class="preBtn" onclick="showPre()"></div>
      <div class="nextBtn" onclick="showNext()"></div> 
      </li>      
    </ul>     
  </div>
</div>
</body>
</html>
相关推荐
止观止2 分钟前
Remix框架:高性能React全栈开发实战
前端·react.js·前端框架·remix
萌萌哒草头将军21 分钟前
🚀🚀🚀 深入探索 Node.js v22.18.0 新特性;默认支持运行 ts 文件了!
前端·typescript·node.js
Dcs24 分钟前
别再观望了!这才是把 AI 融入日常工作的正确姿势
java
Dxy123931021634 分钟前
python创建一个excel文件
开发语言·python·excel
安心不心安36 分钟前
React ahooks——副作用类hooks之useThrottleFn
前端·javascript·react.js
朝朝又沐沐40 分钟前
算法竞赛阶段二-数据结构(40)数据结构栈的STL
开发语言·数据结构·c++·算法
秋田君1 小时前
Vue3 + WebSocket网页接入弹窗客服功能的完整实现
前端·javascript·websocket·网络协议·学习
比特森林探险记1 小时前
Go语言常用的设计模式
开发语言·设计模式·golang
浪里行舟1 小时前
一网打尽 Promise 组合技:race vs any, all vs allSettled,再也不迷糊!
前端·javascript·vue.js