制作轮播图

2 篇文章 0 订阅
1 篇文章 0 订阅

今天制作了一个自动轮播图,记录一下

方法:

利用一个无序列表,将图片放置1行,控制 ulleft控制当前显示的是哪张图片,利用动画显示左右切换的效果。
监听resize事件,让大小自动适应

Github demo地址:
https://github.com/huxinxue/demo/blob/master/轮播图片.rar
满意的话就star一下吧

效果展示:
在这里插入图片描述

话不多说,直接上代码:
html:

<!-- 图片 -->
	<ul>
		<li class="img1"></li>
		<li class="img2"></li>
		<li class="img3"></li>
		<li class="img4"></li>
		<li class="img5"></li>
		
	</ul>
	<!-- 小圆点 -->
	<div>
		<p>
		<span class="active">&nbsp;</span>
		<span>&nbsp;</span>
		<span>&nbsp;</span>
		<span>&nbsp;</span>
		</p>
	</div>
注意
  1. 所有图片都在同一行,通过设置 li的背景图显示图片
  2. css中 .img1 与 .img5 对应是同一张图片

js:

var num = 5;
	var h = window.screen.height;
	// var w = window.screen.width;
	var w = document.body.clientWidth;

	$("ul").width(w * num);
	$("li").height(window.screen.height );
	$("li").width(w );
	$("div p").width(w);
	var spans = $('span');

	var i = 0;
	var j = 0;

	//递归调用,循环执行
	//.img的执行顺序  1,2,3,4,5,2,3,4,5,2。。。。
	//图片的循环顺序: 1,2,3,4,1,2,3,4,1,2。。。。
	function scroll(argument) {
		//去掉当前小圆点的active
		$(spans[j]).removeClass("active");

		i++;
		j++;
		if(i==num) {
			// 图片循环
			i = 0;
			$("ul").css("left",0);
			i++;
		}
		if(j==num-1){
			// 小圆点循环
			j=0;
		}

		// 利用向左移动更换图片
		$("ul").animate({left:"-"+w*i+"px"},"slow");
		//加上目标小圆点的active
		$(spans[j]).addClass("active");

		// 循环调用
		setTimeout(scroll,3000);
	}

	setTimeout(scroll,3000);



	window.onresize = function(){
		// 大小改变时重置各元素的宽度
	w = document.body.clientWidth;
	$("ul").width(w * num);
	$("li").width(w);
	$("div p").width(w);
	$("ul").css("left",-1*w*i);
	}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值