四十九1

轮播图
(“尚硅谷”中的通过改变偏移的方法完成轮播图)
HTML(需完成窗口div(outer)和图片放置div(imgList),outer大小为图片大小+边距,
imgList大小为所投图片相加总和(需加上图片之间的间距)。
navDiv为图片上的导航条)

css(各部分需开启定位,outer需使用 (overflow: hidden;)剪裁溢出的imgList部分。
div的大小设置可在css完成,部分需要变换的大小(比如imgList宽度有图片数量决定)需要由js完成数值设定)

(js部分代码)
window.onload = function(){
//设置imglist的宽度
var imgList = document.getElementById(‘imgList’);

//获取页面中的所有img标签
var imgArr = document.getElementsByTagName('img');
//设置imgList宽度
imgList.style.width = 280*imgArr.length+"px";

//设置导航按钮居中
//获取navDiv
var navDiv = document.getElementById('navDiv');
//获取outer
var outer = document.getElementById('outer');
//设置navDiv的left值
navDiv.style.left = (outer.offsetWidth - navDiv.offsetWidth)/2 + "px";

//默认显示图片的索引
var index = 0 ;

//获取所有的a
var allA = document.getElementsByTagName('a');

//设置默认选中的各效果
allA[index].style.backgroundColor = "black";

/*点击超链接切换到对应的的图片*/
//为所有超链接绑定单级响应函数
for(var i= 0;i< allA.length;i++){
	
	//为每一个超链接都添加一个num属性
	allA[i].num = i; 
	
	//为超链接绑定单击响应函数
	allA[i].onclick = function(){
		
		//关闭自动切换定时器
		clearInterval(timer1);
		
		//获取点击超链接的索引,并将其设置为index
		index = this.num;
		
		//切换图片
		/*第一张  0 0
		 * 第二张  1 -280
		 * 第三章  2 -560
		 */

// imgList.style.left = -280*index + “px”;(使用move函数后,即可不用设置偏移量,由函数处理)

		//修改正在选中的a
		setA();
		
		move(imgList,"left",-280*index,20,function(){
			//动画执行完毕,开启自动切换
			autochange();
		});	
	};
	
}
	autochange();


//创建一个方法,用来设置选中的a
function setA(){
	
	// 判断当前索引是否是最后一张图片
	if(index >= imgArr.length-1){
		// 将index设置为0
		index = 0;
		
		// 此时显示的是最后一张图片,二最后一张和第一张是一米一样的
		//通过css将最后一张切换位第一行在那个
		imgList.style.left = 0;
		
	}
	
	//遍历所有的a,并将背景色设置为红色
	for(var i= 0;i< allA.length;i++){
		allA[i].style.backgroundColor = "";
	}
	//将选中的a设置为黑色
	allA[index].style.backgroundColor = "black";
	
}

//定义一个自动切换的定时器
var timer1;
//创建一个函数,用来开启自动切换图片
function autochange(){
	// 开启一个定时器,用来定时切换图片
	timer1 =  setInterval(function(){
		
		//使索引自增
		index++;
		
		// 判断index的值
		index %= imgArr.length;
		
		//执行动画切换图片
		move(imgList,"left",-280*index,20,function(){
			// 修改导航点
			setA();
		})
		},3000);		
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值