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动态追加页面数据以及事件委托详解
May 06 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
浅谈jQuery框架Ajax常用选项
Jul 08 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
jQuery实现小火箭返回顶部特效
Feb 03 jQuery
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
Jquery cookie插件实现原理代码解析
Aug 04 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的FTP学习(一)[转自奥索]
2006/10/09 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
Javascript this指针
2009/07/30 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
学习ExtJS Column布局
2009/10/08 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
python之import机制详解
2014/07/03 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
TensorFlow实现创建分类器
2018/02/06 Python
python如何爬取个性签名
2018/06/19 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
Python的in,is和id函数代码实例
2020/04/18 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
捐款倡议书范文
2014/02/02 职场文书
小学生寒假家长评语
2014/04/16 职场文书
远程培训的心得体会
2014/09/01 职场文书
城管个人总结
2015/02/28 职场文书
大学生暑假实习总结
2015/07/13 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
解析MySQL binlog
2021/06/11 MySQL