为了账号安全,请及时绑定邮箱和手机立即绑定

图片轮播鼠标点击及切换怎么实现?

图片轮播鼠标点击及切换怎么实现?

echojson 2016-04-12 14:06:43
查看完整描述

1 回答

?
一只喵__

TA贡献9条经验 获得超11个赞

一下是我刚做的一个无缝滚动的练习,望采纳!

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>gundong</title>
<link rel="stylesheet" type="text/css" href="gundongCSS.css">
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="gundongJs.js"></script>
</head>
<body>
<div>

<div>
<ul>
<li><img src="img/01.jpg"/></li>
<li><img src="img/02.jpg"/></li>
<li><img src="img/03.jpg"/></li>
<li><img src="img/04.jpg"/></li>
</ul>
</div>

<ol>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>

<a href="javascript:;"></a>
<a href="javascript:;"></a>

</div>
</body>
</html>


gundongCss.css:
*{list-style: none; margin: 0; padding: 0;}

.content{width: 400px; height: 307px; margin: 50px auto; border: 5px solid #ccc; position: relative;}

.img_div{width: 400px; height: 307px; overflow: hidden; position: relative;}
.img_div ul{width: 2000px; height: 307px; position: absolute; left: 0px;}
.img_div ul li{float: left;}

.content ol{overflow:hidden; margin: 10px auto; width: 75px;}
.content ol li{float: left; width: 13px; height: 13px; margin-right: 5px; background: url(img/00.png) no-repeat 0px -13px;}
.content ol li.current{background-position: 0px -26px;}

.leftBtn,.rightBtn{width: 52px; height: 52px; display: block; background: url(img/arr.png) no-repeat; position: absolute; top: 115px;}
.leftBtn{background-position:left top; left: -20px;}
.rightBtn{background-position: -52px top; left: 369px;}

gundongJs.js:
$(function(){

	//clone第一个li放到ul里边的最后的位置
	var myLi = $(".img_div ul li:eq(0)").clone(true);
	var myTag = $(myLi);
	$(".img_div ul").append(myTag);

	//声明变量imgLeft,控制ul的left位置,初始为0
	var imgLeft = 0;
	//声明变量ul_num表示当前播放图片的下标,初始为0
	var ul_num = 0;
	//声明变量ol_num表示当前“ol-li”的下标,初始为0
	var ol_num = 0;

	var myFn = function(){
		ul_num += 1;
		if(ul_num > 4){
			$(".img_div ul").css("left","0px"); //大于4的时候,left立即跳转到0px(此时展示第一张图)
			ul_num = 1;//到上一步为止,展示的是第一张图,接下来该展示第二张(索引为1)了,所以设置ul_num为1
		}
		imgLeft = ul_num * -400;
		$(".img_div ul").stop().animate({"left": imgLeft + "px"},500);

		ol_num += 1;
		if(ol_num > 3){
			ol_num = 0;
		}
		$(".content ol li").eq(ol_num).addClass("current").siblings().removeClass("current");
	}

	//timer自动播放
	var timer = null;
	timer = setInterval(myFn,2000);
	$(".content").hover(function(e){
		clearInterval(timer);
	},function(){
		timer = setInterval(myFn,2000);
	});


	//rightBtn的click事件
	$(".rightBtn").click(function(){
		myFn();
	});

	//leftBtn的click事件
	$(".leftBtn").click(function(){
		ul_num -= 1;
		if(ul_num < 0){
			$(".img_div ul").css("left","-1600px");//小于0的时候,left立即跳转到-1600px(此时展示最后一张图)
			ul_num = 3;//到上一步为止,展示的是最后一张图,接下来该展示倒数第二张(索引为3)了,所以设置ul_num为3
		}
		imgLeft = ul_num * -400;
		$(".img_div ul").stop().animate({"left": imgLeft + "px"},500);

		ol_num -= 1;
		if(ol_num < 0){
			ol_num = 3;
		}
		$(".content ol li").eq(ol_num).addClass("current").siblings().removeClass("current");

	});

	//ol下li的点击事件
	$(".content ol li").click(function(){
		ul_num = $(this).index();
		ol_num = $(this).index();

		imgLeft = ul_num * -400;
		$(".img_div ul").stop().animate({"left": imgLeft + "px"},500);
		$(".content ol li").eq(ol_num).addClass("current").siblings().removeClass("current");
	});

});


查看完整回答
1 反对 回复 2016-04-12
  • 1 回答
  • 1 关注
  • 1474 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信