JS实现轮播图(可以选择加上按钮可选择加当前第几个图)

题记:

有很久没有写前端了,最近要做个轮播图,本来想直接cope一个的,结果网上那些都太复杂了,写那么多,改了个简单的,防止以后再做好直接用,注释多,简单易懂!!!主要是方便!!!

GitHub下载地址我放在了文末。

实现代码:

<!DOCTYPE HTML>
<head>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="./demo.css">
</head>

<body>
	<div class="slide">
		<div class="img">
			<ul id="slide_img">
				<li><img src="./img/timgZQQ905MD.jpg"></li>  <!--处理无缝衔接的图片-->
				<li><img src="./img/1486293868523.jpg"></li>
				<li><img src="./img/timg1.jpg"></li>
				<li><img src="./img/timg2.jpg"></li>
				<li><img src="./img/timgZQQ905MD.jpg"></li>
			</ul>
		</div>
<!-- 		<ul id="num">	//此处是下标圆点.这里我不要,需要的话直接取消注释就行。
			<li></li>
			<li></li>
			<li></li>
			<li></li>
		</ul> -->
		<div class="btn">
			<span id="left"><</span>
			<span id="right">></span>
		</div>
	</div>
	<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
	<!--通过百度CDN地址引用jQuery库-->
	<script type="text/javascript" src="./demo.js"></script>
</body>





//js代码如下--------------------------------------------------------------------


$(document).ready(function () {
	initRadius();
});

var number = 1;  //设置为全局变量

//轮播图图片主体
function startSlide() {
	dealRadius(number);
	if(number == 4) {		//此处为4,因为5张图片,如果为其他的减1即可
		number = 0;
		$('#slide_img').css({left: '0px'});  //处理无缝衔接图
		 dealRadius(0); // 处理无缝衔接小圆点的跳转
	}
	number++;
	var imageLeft = -1366 * number;  //1366是移动的距离,根据自己图片的大小更改
	$('#slide_img').animate({left: imageLeft});
}	
var timer = setInterval(startSlide,3000);//3000是3秒,每次间隔3秒钟滑动一次



//小圆点的轮播实现
function dealRadius(num) {
	var lis = $('#num li');
	lis.eq(num).css('background-color', 'red');
	for(var i = 0; i < num; i++) {
		lis.eq(i).css('background-color','white');
	}
	for(var i = num + 1; i < 4; i++) {
		lis.eq(i).css('background-color','white');
	}
}

//初始化小圆点
function initRadius() {
	var lis = $('#num li');
	lis.eq(0).css('background-color', 'red');
}


//左右按钮的实现
$('#left').mousedown (function() {
	clearInterval(timer);
	if(number == 0) {
		$('#slide_img').css({left: '-4000px'}); 
		number = 4;
	}
	var imageLeft = -1366 * (number-1);
	$('#slide_img').animate({left: imageLeft});
	number--;
	if(number == 0) {
		dealRadius(3);
	} else {
			dealRadius(number-1);
	}
});
$('#left').mouseup(function() {
	timer = setInterval(startSlide,3000);
});

$('#right').mousedown (function() {
	clearInterval(timer);
	if(number == 4) {
		number = 0;
		$('#slide_img').css({left: '0px'});  //处理无缝衔接图
	}
	var imageLeft = -1366 * (number+1);
	$('#slide_img').animate({left: imageLeft});
	dealRadius(number);
	number++;

});
$('#right').mouseup(function() {
	timer = setInterval(startSlide,3000);
});


//小圆点的点击实现
$('#num').on('click','li',function(){
	clearInterval(timer);
	var _number = $(this).index() + 1;
	number = _number
	dealRadius(number-1);
	var imageLeft = -1366 * number;
	$('#slide_img').animate({left: imageLeft});
	timer = setInterval(startSlide,3000);
});






css代码如下-----------------------------------------------------------------
*{
	margin: 0;
	padding: 0;
}
.slide{
	position: relative;
	width: 1266px;		/*装图片的盒子的长度为1266px,可以任意改*/
	height: 500px;
	margin: 40px auto;
	overflow: hidden;
}
.img ul{
	position: absolute;
	left: -1366px;		
	width: 6830px;		/*总共的图片长度例如此例子是5个图,5*1366px*/
}
.img li{
	list-style-type: none;
	float: left;
}
img{
	width: 1366px;
	height: 500px;
}
#num li{
	list-style-type: none;
	background-color: white;
	border: 1px solid red;
	border-radius: 100px;
	float: left;
	width: 10px;
	height: 10px;
	margin: 10px;
	cursor: pointer;
}
#num {
	position: absolute;
	top: 450px;
	left: 800px;
}
.btn{
	font-size: 30px;
	color: gray;
}
#left{
	position: absolute;
	top: 230px;
	left: 40px;
	cursor: pointer;
}
#right{
	position: absolute;
	top: 230px;
	right: 40px;
	cursor: pointer;
}

实现效果图:

一共4张图片切换,这里我就截2张效果图。

另外代码的下载地址如下:

代码下载地址

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用 JavaScript 和 HTML 来实现,并通过按钮实现片的跳转。以下是一个简单的示例代码: HTML 部分: ```html <div class="slideshow-container"> <div class="slide"> <img src="image1.jpg" alt="Image 1"> </div> <div class="slide"> <img src="image2.jpg" alt="Image 2"> </div> <div class="slide"> <img src="image3.jpg" alt="Image 3"> </div> </div> <div class="buttons"> <button onclick="previousSlide()">Previous</button> <button onclick="nextSlide()">Next</button> </div> ``` CSS 部分: ```css .slideshow-container { position: relative; } .slide { display: none; } .buttons { text-align: center; } ``` JavaScript 部分: ```javascript var currentSlide = 0; var slides = document.getElementsByClassName("slide"); function showSlide() { // 隐藏所有幻灯片 for (var i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } // 显示当前幻灯片 slides[currentSlide].style.display = "block"; } function previousSlide() { currentSlide--; if (currentSlide < 0) { currentSlide = slides.length - 1; } showSlide(); } function nextSlide() { currentSlide++; if (currentSlide >= slides.length) { currentSlide = 0; } showSlide(); } showSlide(); ``` 上述代码中,通过 HTML 创建了一个包含幻灯片的容器 `.slideshow-container`,每个幻灯片使用 `.slide` 类来表示,按钮使用 `<button>` 元素,并分别绑定了 `previousSlide()` 和 `nextSlide()` 函数。在 JavaScript 中,通过控制 `currentSlide` 变量的值来控制显示哪个幻灯片,并通过 `showSlide()` 函数来切换幻灯片的显示。 你可以根据实际需要修改样式和片路径。希望这个示例能帮助到你!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybbgrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值