JQuery实现一个轮播图
1、HTML
<div class="banner">
<div class="b_main">
<div class="b_m_pic">
<ul>
<li>
<a>
<img src="img/1.png" />
</a>
</li>
<li>
<a>
<img src="img/2.png" />
</a>
</li>
<li>
<a>
<img src="img/3.jpg" />
</a>
</li>
<li>
<a>
<img src="img/4.jpg" />
</a>
</li>
<li>
<a>
<img src="img/5.png" />
</a>
</li>
<li>
<a>
<img src="img/6.png" />
</a>
</li>
</ul>
</div>
</div>
<!--小圆点-->
<div class="b_list">
<ul>
<li class="l_click"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="b_btn">
<div class="b_left"><</div>
<div class="b_right">></div>
</div>
</div>
2、CSS
<style type="text/css">
* {
margin: ;
padding: ;
} ul li {
list-style: none;
} img {
margin: ;
width: %; /*这里的宽高是为了占满盒子*/
height: %;
} .banner {
position: relative;
width: 1366px;
height: 780px;
margin: 100px auto;
border: 10px solid #;
border-radius: 15px;
} .banner .b_main {
position: relative;
width: 1366px;
height: 780px;
} .banner .b_main .b_m_pic {
position: relative;
width: 1366px;
height: 780px;
} .b_main .b_m_pic li {
position: absolute; /*这里给绝对定位,是为了把li叠在一起*/
width: 1366px;
height: 780px;
top: ;
left: ;
}
/*小圆点的样式*/
.b_list ul {
position: absolute; /*这里的ul根据banner定位*/
right: 40px;
bottom: 30px;
} .b_list ul li {
width: 20px;
height: 20px;
float: left;
background: #;
margin-left: 20px;
border-radius: 50px;
border: 2px solid white;
} .b_list ul .l_hover, .b_list ul .l_click {
border: 2px solid #;
background: white;
}
/*两边耳朵的样式*/
.b_btn div {
position: absolute;
width: 100px;
height: 100px;
background: rgba(,,,0.7);
font-size: 60px;
color: white;
text-align: center;
line-height: 100px;
top: %;
margin-top: -80px;
cursor: pointer;
}
/*移到左边*/
.b_btn .b_left {
left: ;
border-radius: %;
}
/*移到右边*/
.b_btn .b_right {
right: ;
border-radius: %;
}
</style>
3、JS
var $li = $(".b_list ul li");//获取.b_list里面的所有li,放到$li这个变量里面
var len = $li.length - ;
var _index = ;//li的索引
var $img = $(".b_main .b_m_pic li");//同上
var $btn = $(".b_btn div");
var timer = null;
$li.hover(function () {
$(this).addClass("l_hover");//指向li添加样式
}, function () {
$(this).removeClass("l_hover");//指向li删除样式
});
//封装函数
function play() {
//获取li的下标,改变样式
$li.eq(_index).addClass("l_click").siblings().removeClass("l_click");
//获取图片的下标,实现淡入淡出
$img.eq(_index).fadeIn().siblings().fadeOut();
}
//点击事件
$li.click(function () {
_index = $(this).index();
//获取li的下标,改变样式
//$li.eq(_index).addClass("l_click").siblings().removeClass("l_click");
//获取图片的下标,实现淡入淡出
//$img.eq(_index).fadeIn().siblings().fadeOut();
play();
});
//两边耳朵的点击事件
$btn.click(function () {
var index = $(this).index();
if (index) {
_index++;
if (_index > len) {
_index = ;
}
play();
} else {
_index--;
if (_index < ) {
_index = len;
}
play();
}
});
//定时轮播
function auto() {
//把定时器放进timer这个对象里面
timer = setInterval(function () {
_index++;
if (_index > len) {
_index = ;
}
play();
}, );
}
auto();
//当我移上d_main的时候停止轮播
$(".b_main").hover(function () {
clearInterval(timer);
}, function () {
//移开重新调用播放
auto();
});
//当我移上两边耳朵的时候停止轮播
$(".b_btn div").hover(function () {
clearInterval(timer);
}, function () {
//移开重新调用播放
auto();
});
4、效果图

5、总结
① 图片、小圆点、两边的耳朵要使用position:absolute绝对定位,进行叠加。
注:绝对定位要根据父级元素进行定位,父级元素要加上position: relative;
② 根据索引值改变图片,达成切图
注:实现淡入淡出分别是fadeIn和fadeOut两个jq方法
siblings() 方法返回被选元素的所有同级元素。同级元素是共享相同父元素的元素。
③ 定时器(实现轮播):
setInterval()是开始播放,clearInterval()是关闭
定时器有两个参数,第一个是函数方法(可以另写一个方法,写上方法名调用,也可以直接写一个function),第二个是时间
JQuery实现一个轮播图的更多相关文章
- jQuery淡入淡出轮播图实现
大家好我是 只是个单纯的小白,这是人生第一次写博客,准备写的内容是Jquery淡入淡出轮播图实现,在此之前学习JS写的轮播图效果都感觉不怎么好,学习了jQuery里的淡入淡出效果后又写了一次轮播图效果 ...
- 用jQuery写的轮播图
效果图: GitHub地址:https://github.com/123456abcdefg/Javascript 大家可以下载源码查看. 与前一篇写的轮播图实现的效果一致,这个是用jQuery写的, ...
- 用纯css、JavaScript、jQuery简单的轮播图
完成一个可以自动切换或点击数字的轮播图 HTML代码只需要一个div 包含着一个图片和一个列表,我们主要的思路就是通过点击相应的数字,改变图片的 路径. 有4张图片都在img文件夹里,名称为 img ...
- jQ实现的一个轮播图
众所周知,轮播图是被广泛的运用的. 轮播图我们在很多的网站上都可以看到,例如淘宝.京东这些网站都很常见. 下面开始我们的轮播之旅: 搭建我们的骨架: <!DOCTYPE html> < ...
- css3 - 纯css实现一个轮播图
这是我上一次的面试题.一晃两个月过去了. 从前都是拿原理骗人,把怎么实现的思路说出来. 我今天又被人问到了,才想起来真正码出来.码出来效果说明一切: 以上gif,只用到了5张图片,一个html+css ...
- jQuery实现简易轮播图的效果
(图片素材取自于小米官网) 刚开始接触jQuery的学习,个人觉得如果为了实现多数的动态效果,jQuery的确很简易方便. 下面简易的轮播图效果,还请前辈多多指教~ (努力学习react vue an ...
- 记录一下自己用jQuery写的轮播图
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- jquery淡入淡出轮播图
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- AXURE 8弄一个轮播图的步骤
这个图是网上找到,7.0可以使用. 如果是8.0.没有找到"动态面板"这个地方,如下图所示
随机推荐
- niagara Workbench module import IntelliJ
1. 在整个网络布线中使用一种布线方式,但是两端都有RJ-45 plug 的网络连线,无论是采用方式A还是方式B 端接的方式都是试用的.网络都是通用的,双绞线的顺序与RJ-45偶的引脚序号一一对应, ...
- Python目录:
Python基础 python书写规范--消去提示波浪线 Python 列表(list) Python字符串 Python字典 Python文件操作 Python函数 Python函数-装饰器 Pyt ...
- 探索Visual Studio生成的.vs文件夹内部结构和作用
这里直接先将我摸索出的结果贴出来,文章后面会一一详细说明和分析:.vs目录是用来存储当前用户在解决方案中的工作配置,具体包括VS关闭前最后的窗口布局.最后打开的选项卡/操作记录/文件文档.某些自定义配 ...
- [原创]基于Zynq AXI-Bram Standalone & Linux 例程
基于Zynq AXI-Bram Standalone & Linux 例程 待添加完善中
- 无法执行该VI,必须使用LabVIEW完整版开发系统才可以解决该错误
该错误99%是因为你在某个vi中使用了外部系统组件,比如api,.net组件,ActiveX组件,com组件,所有不是Labview原生的接口,在你打包后,在其他没有安装这些组件的电脑上运行,就会出现 ...
- import文件时 ~/ 不识别问题(react)
在最近写的react的项目中,在webpack中配置的“~”可以定位到根路径,但是知道在同事在windows中跑程序时,发现怎么都不识别这个路径,所有相关文件都could not find modul ...
- port bridge enable命令导致的环路
1.故障描述 前几天机房一台连接数据中心与核心交换的交换机宕机(硬件故障),机房有备用的设备,随即更换(配置也是早就配置好了的),但是下午就出现数据中心网络丢包问题,表现为存在mac漂移 2.拓扑 核 ...
- xls 编码 utf-8
直接用 Excel 打开 UTF-8 编码的 CSV 文件会导致汉字部分出现乱码.原因是 Excel 以 ANSI 格式打开,不会做编码识别. ==打开 UTF-8 编码的 CSV 文件的方法:1) ...
- sybase central 报 NullPointerException 解决
准备发布版本,但是要创建数据库的时候遇到了问题,发现之前可以正常打开的sybase Central 现在无法打开了.苦恼一段时间后找到如下解决方法. 报错如下: 解决如下: 正常打开:
- Python matplotlib图片转化成矢量图并裁剪
Python目前可以生成的图的格式是:eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff 在写论文时候我一般生成png ...