jQuery实现轮播图源码


Posted in jQuery onOctober 23, 2019

本文实例为大家分享了jQuery实现轮播图展示的具体代码,供大家参考,具体内容如下

设计:

jQuery实现轮播图源码

根据上图可以看出,轮播图需要以下元素:外面的盒子div、放置图片集合的盒子ul、放置两侧按钮的盒子div、下侧顺序按钮div

源代码如下:

一、html源码如下:

<div class="outer">
 
 <ul class="img">
 <li><a><img src="../static/img/1.jpg"></a></li>
 <li><a><img src="../static/img/2.jpg"></a></li>
 <li><a><img src="../static/img/3.jpg"></a></li>
 <li><a><img src="../static/img/4.jpg"></a></li>
 </ul>
 
 
 <ul class="num">
 <li class="current">1</li>
 <li>2</li>
 <li>3</li>
 <li>4</li>
 </ul>
 
 <div class="left_btn btn"><</div>
 <div class="right_btn btn">></div>
</div>

二、css样式实现:

<style>
 /*去掉默认浏览器样式*/
 *{
 margin: 0;
 padding: 0;
 }
 /*去掉li标签默认样式*/
 li{
 list-style: none;
 }
 /*最外层盒子样式处理:
 1.设置与轮播图高宽一致
 2.设置纵向距顶部50px,水平居中
 3.设置自己为固定位置
 */
 .outer{
 height: 470px;
 width: 590px;
 margin: 50px auto;
 position:relative;
 }
 /*轮播图片集合处理:
 1.将其设置为脱离文档流
 2.设置距顶部和左侧都为0
 */
 .img li{
 position: absolute;
 top: 0;
 left: 0;
 }
 /*顺序按钮区域处理:
 1.设置脱离文档流
 2.通过设置text-align、width使其整体水平居中
 3.设置距离底部20px
 */
 .num{
 position: absolute;
 text-align: center;
 width: 100%;
 bottom: 20px;
 }
 /*顺序按钮处理:
 1.将其设置为行级及块级兼容显示
 2.设置其宽高
 3.设置背景色及字体颜色
 4.设置字体水平居中
 5.通过设置line-height与height一致,使其字体纵向居中
 6.设置其样式为圆形
 7.增加按钮左右间距
 */
 .num li{
 display: inline-block;
 width: 20px;
 height: 20px;
 background-color: darkgray;
 color: white;
 text-align: center;
 line-height: 20px;
 border-radius: 50%;
 margin: 0 20px;
 }
 /*左、右按钮相同部分处理:
 1.设置其脱离文档流
 2.设置其宽高
 3.设置背景色及字体颜色
 4.设置字体水平居中
 5.通过设置line-height与height一致,使其字体纵向居中
 6.通过设置top、margin-top使其整体纵向居中
 7.默认不显示
 */
 .btn{
 position: absolute;
 width: 20px;
 height: 50px;
 background-color: darkgray;
 color: white;
 text-align: center;
 line-height: 50px;
 top: 50%;
 margin-top: -25px;
 display: none;
 }
 /*左侧按钮处理:
 设置左侧为0
 */
 .left_btn{
 left: 0;
 }
 /*右侧按钮处理:
 设置右侧为0
 */
 .right_btn{
 right: 0;
 }
 /*鼠标悬浮至轮播图区域时左、右按钮处理:
 1.设置左右按钮显示样式为行级块级兼容
 2.设置鼠标放置在左右按钮时样式为小手
 */
 .outer:hover .btn{
 display: inline-block;
 cursor: pointer;
 }
 /*设置顺序按钮初始按钮样式:
 设置为红色(由于样式级别问题会导致设置无效,可通过两种方式解决:
 1.后面加上!important
 2.将css定位写详细,比如:.outer .num .current{……
 )
 */
 .current{
 background-color: red!important;
 }
 
</style>

三、JQuery实现:

<script src="../static/jquery-3.3.1.min.js"></script>
<script>
 /*定义位置:由于图片个数与下侧顺序按钮数量一致,可通过位置进行关联*/
 var index=0;
 /*当鼠标放到顺序按钮上时:
 1.将当前这个顺序按钮增加样式为红色背景
 2.移除周围其他同级元素红色背景样式
 3.获取当前顺序按钮的index
 4.通过index获取该位置图片
 5.一秒钟渐入该图片
 6.一秒钟渐出其他相邻图片
 7.防止移动过快导致的效果闪现,使用stop方法
 */
 $(".num li").mousemove(function () {
  $(this).addClass("current").siblings().removeClass("current");
  index=$(this).index();
  $(".img li").eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
 });
 /*设置每一秒钟自动轮播:
 1.获取当前位置序号:自加操作;当超过图片最大序号时序号设置为0
 2.设置下侧顺序按钮及轮播图显示
 */
 var time=setInterval(move,1000);
 function move() {
 index++;
 if (index==4){
  index=0
 }
 $(".num li").eq(index).addClass("current").siblings().removeClass("current");
 $(".img li").eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
 };
 /*当鼠标划入、划出轮播图区域时:
 1.划入时停止自动轮播
 2.划出时继续自动轮播
 */
 $(".outer").hover(function () {
 clearInterval(time);
 },
 function () {
 time=setInterval(move,1000);
 });
 /*点击右侧按钮时执行*/
 $(".right_btn").click(function () {
 move();
 });
 /*点击左侧按钮时执行*/
 function moveL() {
  index--;
 if (index==-1){
  index=3
 }
 $(".num li").eq(index).addClass("current").siblings().removeClass("current");
 $(".img li").eq(index).stop().fadeIn(1000).siblings().stop().fadeOut(1000);
 }
 $(".left_btn").click(function () {
 moveL();
 });
</script>

完整源码下载:jQuery轮播图源码

更多关于轮播图效果的专题,请点击下方链接查看学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery中的deferred对象和extend方法详解
May 08 jQuery
jQuery实现简单的滑动导航代码(移动端)
May 22 jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
jQuery实现拖动效果的实例代码
Jun 25 jQuery
基于jquery实现五星好评
Nov 18 jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 jQuery
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 jQuery
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 jQuery
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
JQuery Ajax动态加载Table数据的实例讲解
Aug 09 jQuery
jQuery轻量级表单模型验证插件
Oct 15 jQuery
jQuery实现飞机大战小游戏
Jul 05 jQuery
jQuery实现图片随机切换、抽奖功能(实例代码)
Oct 23 #jQuery
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 #jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 #jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 #jQuery
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 #jQuery
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 #jQuery
jquery 时间戳转日期过程详解
Oct 12 #jQuery
You might like
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
php封装的smarty类完整实例
2016/10/19 PHP
nginx 设置多个站跨域
2021/03/09 Servers
js精度溢出解决方案
2012/12/02 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python深入学习之装饰器
2014/08/31 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python与字符编码问题
2019/05/24 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
企业开业庆典答谢词
2015/01/20 职场文书
校长一岗双责责任书
2015/05/09 职场文书
城南旧事观后感
2015/06/11 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers