原生JS与jQuery实现图片轮播效果详解
作者:橙子时间:2026-10-30 10:30:31浏览:377
本文分享一种基于jQuery的图片轮播实现方案。核心原理包括:页面加载时利用绝对定位使图片重合,默认显示首张并隐藏其余;通过下标控制当前展示图片及导航点样式;支持鼠标悬停显示左右切换图标并暂停自动轮播,移开后恢复。代码涵盖HTML结构、CSS样式及jQuery逻辑,适合初学者学习轮播图基础交互与DOM操作。
JS轮播图效果概述
这里分享一个常用的JavaScript图片轮播效果,供各位参考学习。
轮播核心逻辑分析
一、核心逻辑: 1. 页面初始化时,所有图片通过绝对定位重叠在一起; 2. 默认仅显示第一张图片,其余图片隐藏; 3. 设置导航下标,通过改变下标颜色来指示当前图片位置; 4. 鼠标悬停图片区域时,显示左右切换箭头图标,并暂停自动轮播;鼠标移开后,恢复自动轮播。
二、具体实现代码: HTML结构代码如下:
HTML结构实现
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>轮播图</title>
<link href="css/LunBimg.css" rel="stylesheet" />
<script src="js/jquery-1.10.2.min.js"></script>
<script src="js/LunBimg.js"></script>
</head>
<body>
<div id="allswapImg">
<div class="swapImg"><img src="image/1.jpg" /></div>
<div class="swapImg"><img src="image/2.jpg" /></div>
<div class="swapImg"><img src="image/3.jpg" /></div>
<div class="swapImg"><img src="image/4.jpg" /></div>
<div class="swapImg"><img src="image/5.jpg" /></div>
<div class="swapImg"><img src="image/6.jpg" /></div>
</div>
<div class="btn btnLeft"><</div>
<div class="btn btnRight">></div>
<div id="tabs">
<div class="tab bg">1</div>
<div class="tab">2</div>
<div class="tab">3</div>
<div class="tab">4</div>
<div class="tab">5</div>
<div class="tab">6</div>
</div>
</body>
</html>
CSS样式代码如下:
CSS样式设计
* {
padding:0px;
margin:0px;
}
.swapImg {
position:absolute;
}
.btn {
position:absolute;
height:90px;
width:60px;
background:rgba(0,0,0,0.5);/*设置背景颜色为黑色,透明度为50%*/
color:#ffffff;
text-align:center;
line-height:90px;
font-size:40px;
top:155px;/*图片高度400/2-45*/
cursor:pointer;
/*display:none;*/
}
.btnRight {
left:840px;/*图片宽度900-导航宽度60*/
}
#tabs {
position:absolute;
top:370px;
margin-left:350px;
}
.tab {
height:20px;
width:20px;
background:#05e9e2;
line-height:20px;
text-align:center;
font-size:10px;
float:left;
color:#ffffff;
margin-right:10px;
border-radius:100%;
cursor:pointer;
}
.bg {
background:#00ff21;
}
JavaScript(jQuery)逻辑代码如下:
jQuery交互逻辑
/// <reference path="_references.js" />
var i = 0;//全局变量
//定义一个变量用来获取轮播的过程
var time;
$(function ()
{
//1.页面加载后,找到Class等于swapImg的第一个对象,让它显示,它的兄弟元素隐藏
$(".swapImg").eq(0).show().siblings().hide();
showTime();
//当鼠标放到下标上显示该图片,鼠标移走继续轮播
$(".tab").hover(
function ()
{
//获取到当前鼠标所在的下标的索引
i = $(this).index();
show();
//鼠标放上去之后,怎么停止呢?获取到变量的过程,清除轮播,把变量传进去
clearInterval(time);
}, function ()
{
showTime();
});
//要求四,当我点击左右切换
$(".btnLeft").click(function ()
{
//1.点击之前要停止轮播
clearInterval(time);
//点了之后,-1
if (i == 0)
{
i =6;
}
i--;
show();
showTime();
});
$(".btnRight").click(function () {
//1.点击之前要停止轮播
clearInterval(time);
//点了之后,-1
if (i == 5) {
i = -1;
}
i++;
show();
showTime();
});
});
function show() {
//$("#allswapImg").hover(function ()
//{
// $(".btn").show();
//}, function ()
//{
// $(".btn").hide();
//});
//fadeIn(300)淡入,fadeout(300)淡出,过滤时间0.3s
$(".swapImg").eq(i).fadeIn(300).siblings().fadeOut();
$(".tab").eq(i).addClass("bg").siblings().removeClass("bg");
}
function showTime()
{
time = setInterval(function () {
i++;
if (i == 6) {
//只有6张图片,所以i不能超过6,如果i等于6时,我们就让它等于第一张
i = 0;
}
show();
}, 3000);
}
以上就是本文的全部内容,希望能为各位的学习提供便利,也欢迎大家继续支持本站。
作者最新文章
JS脚本在App中运行报错怎么解决
2026-11-04 23:11:03
JS怎么使用padStart方法给数字补零
2026-11-04 11:12:03
JS是什么意思?JavaScript全称及基本定义
2026-11-04 08:05:29
JS 使用 toFixed(1) 保留一位小数的基本用法与注意事项
2026-11-03 18:34:57
JS字符串转整数:parseInt与Number的区别及用法
2026-11-03 17:26:54
