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 相关文章推荐
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
jQuery Collapse1.1.0折叠插件简单使用
Aug 28 jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 jQuery
jQuery中复合选择器简单用法示例
Mar 31 jQuery
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
详解jQuery-each()方法
Mar 13 jQuery
Vue项目中使用jquery的简单方法
May 16 jQuery
基于jQuery实现可编辑的表格
Dec 11 jQuery
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
Jquery 获取相同NAME 或者id删除行操作
Aug 24 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实现的生成静态HTML速度快类库
2007/03/31 PHP
浅谈php7的重大新特性
2015/10/23 PHP
javascript 函数速查表
2010/02/07 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
专科文秘应届生求职信
2013/11/18 职场文书
数控个人求职信范文
2014/02/03 职场文书
学徒工职责
2014/03/06 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
应急处置方案
2014/06/16 职场文书
地理科学专业自荐信
2014/09/01 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js