文档章节

javascript图片轮播(完全自己手写代码)

xiaobo137
 xiaobo137
发布于 2016/06/22 11:40
字数 729
阅读 94
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

今天教同事jquery,用图片轮播来做课件,下面将页面代码分享给大家,希望能给大家带来帮助,另外,本示例界面比较粗糙,请海涵,未考虑兼容,如果需要使用,请适当的做修改。资源文件不提供,jquery库和图片素材请自行下载和替换。

<!DOCTYPE HTML>
<html>
 <head>
   
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<script type="text/javascript" src="./js/jquery.min.js"></script>
<style>
	html,body,.container{ margin:0;padding:0; font-size:12px;}
	.container{width:800px;height:300px; border:1px solid #cccccc;margin-left:200px; margin-top:140px;} 
	.imagebox{ width:680px;height:100%;position:relative;}
	.imagebox img{ border:0;} 
	.tiptext{ position:absolute;left:0px;bottom:0px; height:20px; line-height:20px; vertical-align:middle; text-indent:2em; background-color:#000000;color:#ffffff;opacity:0.6;width:100%; }
	.listbox{ float:right;width:100px;height:100%;}
	.item { height:50px;line-height:50px;width:80%; vertical-align:middle; margin:10px;}
	.item img{ border:1px solid #ffffff;width:100%;height:100%;} 
	.item img.on{ border:1px solid #000000;} 
</style>
 </head>

 <body>
	<div id="" class="container">
		<div id="listbox" class="listbox">
		 
		</div>
		<div id="" class="imagebox">
			<img id="imgdiv" src="" width="100%" height="100%" border="0"/>
			<div id="tiptext" class="tiptext"></div>
		</div>
	</div>

	 <script type="text/javascript">
		function Timer(data)
		{
			//通过构造方法获得资源数据
			this.data=data;
			//设定轮播速度 3s 一次
			this.speed=3000;
			//定义索引 ,默认为0	
			this.index=0;
			//定义定时器对象
			this.timerObj=null; 
		}

		Timer.prototype={
			//启动任务
			start:function(){ 
				//定义_this指向自身,便于后面进行引用
				var _this=this;
				//第一次直接播放
				this.play(this.index); 
				//索引自增
				this.index++;
				//开启定时器,并将定时器对象赋值给timerObj
				this.timerObj=setInterval(function(){
					//执行一次play方法
					_this.play(_this.index); 
					//索引自增,实现变化效果
					_this.index++;
				},this.speed)
			},
			stop:function(){
				//如果定时器对象不为空
				if(this.timerObj!=null)
				{
					//取消定时任务,即停止播放
					clearInterval(this.timerObj)
				}
			},
			play:function(index)
			{
				//获取数据总长度,
				var len = this.data.length;
				//如果索引超出范围
				if(index>=len)
				{
					//重新从第一个开始
					index=0;
				}
				//将索引赋值给对象,否则第二次论询时,索引不会自增
				this.index=index;
				//更新图片
				$("#imgdiv").attr("src",this.data[index].src);
				//更新文本
				$("#tiptext").html(this.data[index].text);

				//重置每个层的透明度
				$(".item").css("opacity",0.5); 

				//重置选中层的透明度
				$(".item").eq(index).css("opacity",1);

				//清除缩略图上的样式
				$(".item img").removeClass("on");
				
 
				//设定选中缩略图的样式
				$(".item img").eq(index).addClass("on");

			}

		}

	 <!--
		$(function(){
			//定义图片数据
			var data=[{src:"./images/img1.jpg",text:"测试1"},
					  {src:"./images/img2.jpg",text:"测试2"},
					  {src:"./images/img3.jpg",text:"测试3"},
					  {src:"./images/img4.jpg",text:"测试4"}];
			//定义图片轮播个数
			var count=data.length;
			//初始化图片列表
			for(var i=0;i<count;i++)
			{
				//给每个缩略图定义一个div
				var child= $("<div></div>");
				//设置样式
				child.addClass("item");
				//添加img标签,显示缩略图
				var img = $("<img/>");
				//设置图片资源
				img.attr("src",data[i].src)   
				//将图片添加到div
				child.append(img);  
				child.css("opacity",0.5);
				//将div添加到缩略图显示区域
				child.appendTo($("#listbox"));
			}
			//定义定时任务实例
			var timer=new Timer(data);
			//调用start 启动任务
			timer.start();
		});


		

	 //-->
	 </script>
 </body>
</html>

效果图如下:

© 著作权归作者所有

xiaobo137
粉丝 34
博文 64
码字总数 33309
作品 0
长沙
项目经理
私信 提问
加载中

评论(0)

使用原生js以两种方式制作一个精美的轮播图(下)

展示界面 & github源码 (这里可以实现PC端模拟移动端左右滑动图片切换的效果) github源码(包含两种方式实现轮播图的源码) 项目预览 前言 如何用原生js实现一个简单的轮播图呢?前面我已经用...

子银_
2019/09/02
0
0
记一个JavaScript图片轮播思路与代码

说在前头 喜欢并学习前端,一路摸爬滚打过来,现在算算也快满一年的,每天或多或少都会来“拜读”大家的写的文章,学习与感悟了不少,作为一名要变的更强的前端小哥哥,在这个节点上,也想写...

柚子先生
2018/08/06
0
0
从一个例子了解window.onload、$(function(){})、$(window).load(function(){})的加载顺序

最近遇到一个轮播需求: 1. ajax请求服务器,返回json,判断json数据里每一项中isFix属性是0还是1,0表示不轮播,1表示需要轮播。 2. 当isFix属性为0的时候,表示该图片不轮播,相反,isFix...

osc_8tcnyc1i
2018/05/23
6
0
告别组件之教你使用原生js和css写移动端轮播图

在工作中由于项目需要要写一个轮播图,本想使用组件直接调用实现快速开发,但是一想到自己经常使用组件但是让自己手写的话确实一点都不会。 一个不会手写组件的前端程序员不是一个好程序员!...

osc_kwrafgul
04/16
6
0
JS实现自动轮播图效果(js案例)

现在很多网站都有轮播图,这篇文章主要为大家详细介绍了js实现轮播图的完整代码及原理,需要的小伙伴可以参考一下。 1、轮播图主要功能: 1、 图片自动轮播(主图切换同时下面导航图片也会跟...

osc_bq1qsg6s
2019/05/22
4
0

没有更多内容

加载失败,请刷新页面

加载更多

好的可视化编辑器收集

国内 https://www.ivx.cn/index 国外 https://vectr.com

lilugirl
6分钟前
7
0
怎么在分享流程图的时候设置密码?迅捷画图教你保密小技巧!

怎么在分享流程图的时候设置密码?相信大家对分享链接和密码已经不陌生了,毕竟现在分享资源主要用的网盘、网站等等,基本上都需要先获取密码,才能进入分享链接页面,从分享资源的角度来说,...

赛利亚大姐大
7分钟前
6
0
如何在Mac电脑中输入多种标点符号和文字表情

特殊的标点符号和表情怎么输入?MAC电脑有自己自带的输入法,但是对于一些表情符号很多人都不知道在哪里使用,现在就来介绍一下MAC如何输入多种标点符号和文字表情。 1、首先我们打开备忘录,...

mac小叮当
16分钟前
17
0
Ubuntu替换国内源

网络环境的原因,官方的apt的源的速度比较慢,打算替换为国内源,正好学校有Ubuntu的源,所以替换下 编辑文件/etc/apt/sources.list 将其中的内容换为对应的系统的目标源即可。 选择你的ubu...

zhangwenwen
39分钟前
14
0
持续交付的最后一英里

如果开发人员的变更集在集成时并没有实现长期部署就绪的状态,那么你的团队其实就没有真正的实践持续交付。 想要完全优化产品开发周期,你需要在团队中强调无缝部署的重要性,使每位工程师都...

京东智联云开发者
40分钟前
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部