简易的JQ轮播图

article/2025/10/19 0:31:27

一、主体程序

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html>
< html >
  < head >
  < meta charset = "utf-8" />
  < title >轮播图①(手动点击轮播)</ title >
  < link type = "text/css" rel = "stylesheet" href = "css/layout.css" />
  </ head >
  < body >
  < div class = "slideShow" >
   <!--图片布局开始-->
   < ul >
   < li >< a href = "#" >< img src = "img/picture01.jpg" /></ a ></ li >
   < li >< a href = "#" >< img src = "img/picture02.jpg" /></ a ></ li >
   < li >< a href = "#" >< img src = "img/picture03.jpg" /></ a ></ li >
   < li >< a href = "#" >< img src = "img/picture04.jpg" /></ a ></ li >
   </ ul >
   <!--图片布局结束-->
   
   <!--按钮布局开始-->
   < div class = "showNav" >
   < span class = "active" >1</ span >
   < span >2</ span >
   < span >3</ span >
   < span >4</ span >
   </ div >
   <!--按钮布局结束-->
  </ div >
  < script src = "js/jquery-1.11.3.js" ></ script >
  < script src = "js/layout.js" ></ script >
  </ body >
</ html >

额,上面的主体程序和前一篇没有区别,未做任何修改~~~~~感兴趣的可以查看第一篇文章,我本次随笔重点会在Jquery程序里面
二、CSS样式

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
*{
  margin : 0 ;
  padding : 0 ;
}
ul{
  list-style : none ;
}
.slideShow{
  width : 346px ;
  height : 210px ; /*其实就是图片的高度*/
  border : 1px #eeeeee solid ;
  margin : 100px auto ;
  position : relative ;
  overflow : hidden ; /*此处需要将溢出框架的图片部分隐藏*/
}
.slideShow ul{
  width : 2000px ;
  position : relative ; /*此处需注意relative : 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置,如果没有这个属性,图片将不可左右移动*/
}
.slideShow ul li{
  float : left ; /*让四张图片左浮动,形成并排的横着布局,方便点击按钮时的左移动*/
  width : 346px ;
}
.slideShow .showNav{ /*用绝对定位给数字按钮进行布局*/
  position : absolute ;
  right : 10px ;
  bottom : 5px ;
  text-align : center ;
  font-size : 12px ;
  line-height : 20px ;
}
.slideShow .showNav span{
  cursor : pointer ;
  display : block ;
  float : left ;
  width : 20px ;
  height : 20px ;
  background : #ff5a28 ;
  margin-left : 2px ;
  color : #fff ;
}
.slideShow .showNav .active{
  background : #b63e1a ;
}

三、jQuery程序
首先说一下定时自动轮播的原理:
1、首先得开一个定时器,假设定时器的时间设置为2000ms,也就是2S定时器执行一次操作
2、定时器每隔2S执行的操作就是模拟按次序点击数字按钮,也就是触发click事件,让图片左移
先来看大体效果实现的jQuery代码一:      

?
1
2
3
4
5
6
var timer= null ; //定时器返回值,主要用于关闭定时器
var iNow=0; //iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0
timer=setInterval( function (){ //打开定时器
  iNow++;    //让图片的索引值次序加1,这样就可以实现顺序轮播图片
  showNumber.eq(iNow).trigger( "click" ); //模拟触发数字按钮的click事件
},2000); //2000为轮播的时间

上面的程序可以实现每隔2S图片的轮播效果,但是轮播到最后一张图的时候会停止,因为没有判断iNow是否到达最后一张图,所以有了下面的代码二:  

?
1
2
3
4
5
6
7
8
9
var timer= null ; //定时器返回值,主要用于关闭定时器
  var iNow=0; //iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0
  timer=setInterval( function (){ //打开定时器
   iNow++;    //让图片的索引值次序加1,这样就可以实现顺序轮播图片
   if (iNow>showNumber.length-1){ //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始
   iNow=0;
   }
   showNumber.eq(iNow).trigger( "click" ); //模拟触发数字按钮的click
  },2000); //2000为轮播的时间

所以jQuery程序的完整代码程序如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$(document).ready( function (){
  var slideShow=$( ".slideShow" ), //获取最外层框架的名称
  ul=slideShow.find( "ul" ),
  showNumber=slideShow.find( ".showNav span" ), //获取按钮
  oneWidth=slideShow.find( "ul li" ).eq(0).width(); //获取每个图片的宽度
  var timer= null ; //定时器返回值,主要用于关闭定时器
  var iNow=0; //iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0
  
  showNumber.on( "click" , function (){  //为每个按钮绑定一个点击事件
   $( this ).addClass( "active" ).siblings().removeClass( "active" ); //按钮点击时为这个按钮添加高亮状态,并且将其他按钮高亮状态去掉
   var index=$( this ).index(); //获取哪个按钮被点击,也就是找到被点击按钮的索引值
   ul.animate({
   "left" :-oneWidth*iNow, //注意此处用到left属性,所以ul的样式里面需要设置position: relative; 让ul左移N个图片大小的宽度,N根据被点击的按钮索引值index确定
   })
  });
  
  timer=setInterval( function (){ //打开定时器
   iNow++;    //让图片的索引值次序加1,这样就可以实现顺序轮播图片
   if (iNow>showNumber.length-1){ //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始
   iNow=0;
   }
   showNumber.eq(iNow).trigger( "click" ); //模拟触发数字按钮的click
  },2000); //2000为轮播的时间
})

上面的注释写的很详细了,主要是为了方便想学习的小伙伴看,但是实际上我写程序不会注释的那么详细,都是很简单的内容啦,看到这里你可能以为jQuery程序就完了,那就大错特错了,因为自动轮播效果是正确的,但是手动点击时就会出错,我特意做了一段Gif动画展示出错的效果:


看到上面的效果你就会忽然大悟,图片自动轮播时,你就算点击按钮它也只是附和你一下,跳转到你点击的按钮,但是仅仅持续一会还是按它轮播的次序,不理会你点击的按钮后应该走的轮播次序,至于原因嘛

是因为手动点击时index的值未赋值给定时器的图片索引iNow,这样iNow就无法存储你点击的按钮索引值,也就是不知道你点击的哪个按钮,既然知道了原因,那么下面就需要进行修改了。

修改完成后的jQuery程序最终版就是:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$(document).ready( function (){
  var slideShow=$( ".slideShow" ), //获取最外层框架的名称
  ul=slideShow.find( "ul" ),
  showNumber=slideShow.find( ".showNav span" ), //获取按钮
  oneWidth=slideShow.find( "ul li" ).eq(0).width(); //获取每个图片的宽度
  var timer= null ; //定时器返回值,主要用于关闭定时器
  var iNow=0; //iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0
  
  showNumber.on( "click" , function (){  //为每个按钮绑定一个点击事件
   $( this ).addClass( "active" ).siblings().removeClass( "active" ); //按钮点击时为这个按钮添加高亮状态,并且将其他按钮高亮状态去掉
   var index=$( this ).index(); //获取哪个按钮被点击,也就是找到被点击按钮的索引值
   iNow=index;
   ul.animate({
   "left" :-oneWidth*iNow, //注意此处用到left属性,所以ul的样式里面需要设置position: relative; 让ul左移N个图片大小的宽度,N根据被点击的按钮索引值iNOWx确定
   })
  });
  
  timer=setInterval( function (){ //打开定时器
   iNow++;    //让图片的索引值次序加1,这样就可以实现顺序轮播图片
   if (iNow>showNumber.length-1){ //当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始
   iNow=0;
   }
   showNumber.eq(iNow).trigger( "click" ); //模拟触发数字按钮的click
  },2000); //2000为轮播的时间
})

http://chatgpt.dhexx.cn/article/bYGIBptq.shtml

相关文章

用jq实现轮播图片的效果

用jq实现轮播图片的效果 使用jq实现简单的图片轮播效果&#xff0c;图片自动轮播功能&#xff0c;左右点击滑动功能&#xff0c;鼠标进入数字列表时实现图片滑动功能&#xff1b;主要是通过操作图片数组删除和添加的元素&#xff0c;然后重新渲染页面的方式来实现轮播。 1.效…

用jq撸一个简易轮播图

本次文章我将来用jq实现一个轮播图&#xff0c;废话少说下面放效果 先说下基本思想&#xff0c;先将item使用position: absolute;脱离文档流令他们叠在一起&#xff0c;使用z-index来实现轮播的效果&#xff0c;注&#xff1a;这里如果没把每一项absolute的话是没法用z-index的…

js jQ轮播图(三种)

第一种: 用了css3进行3D效果轮播 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta…

jq轮播图2

今天续着上一期的来给大家讲另外一种方法的轮播图   这种方法可以实现无缝轮播,原理就是我们在自己预先想要设置轮播的那一组照片后边,用jq语言在另外加上一组相同的照片,相当于现在的长度就是两组照片的长度,我们将初始的图片索引值就先定在我们复制的第一张图片上,就是…

jQuery实现一个简单的轮播图

一.轮播图内容组成 包括&#xff1a;4张图片&#xff0c;图片标号&#xff0c;向左翻页&#xff0c;向右翻页的几个部分&#xff0c;如下图所示&#xff1a; 二.实现功能 1.加载页面后&#xff0c;4张图片默认从第一张图片开始轮播&#xff0c;索引值为1。 2.当把鼠标over到…

jQuery实现各种轮播图

目录 无限循环滚动 百叶窗 轮播一 轮播二 轮播三 无限循环滚动 * {margin: 0;padding: 0;}div {width: 1120px;height: 300px;border: 1px solid #000;margin: 100px auto;overflow: hidden;}ul {list-style: none;width: 3360px;height: 300px;background: #000;/* backgro…

git上传代码简单方法 简单git上传代码工具

简单git上传代码工具 肯定有很多人和我一样&#xff0c;git上传时候搞不懂拉取&#xff0c;合并等一系列的代码冲突问题&#xff0c;往往可能覆盖掉自己今天写的代码&#xff0c;或者覆盖掉别人的代码。 下面给大家简单介绍一款操作比较简单的上传代码工具&#xff1a;下图这款…

Git上传代码到GitHub

版本控制&#xff1a;使用Git上传代码到GitHub 本文将帮助大家学会使用Git&#xff08;版本管理工具&#xff09;软件把电脑中的代码或项目上传到GitHub&#xff08;项目托管平台&#xff09;中。 要上传代码到GitHub中&#xff0c;是必须要安装Git软件的&#xff0c;不管是直…

如何向github上传代码

说明&#xff1a;本人亲测可行 1.首先你要安装git才行&#xff0c;这里不说明。 2.在github上创建个人仓库: 3.复制仓库地址&#xff1a; 4.在本地随便创建一个文件夹&#xff08;注意路径不要中文&#xff09; 5.进入文件中&#xff0c;鼠标右键如果安装成功git,菜单中会多出…

git上传代码到git/码云gitee

一、首先需要下载git https://git-scm.com/ 输入命令:git --version 可查看当前git版本 二.安装后需要一些配置 配置用户名和邮箱: $ git config --global user.name "qinyong" $ git config --global user.email "emailexample.com" qinyong是自…

如何在mac端上用git上传代码到码云

前言&#xff1a;作为一个合格的猿&#xff0c;SVN的使用相信大家已经非常熟悉了&#xff0c;GIT作为一个强大的版本控制工具&#xff0c;也是非常有必要深入学习的。对比两个工具&#xff0c;说说GIT的优缺点&#xff1a; 优点&#xff1a;1、GIT拥有全世界的资源&#xff0c;…

git上传代码到gitee仓库步骤

默认电脑第一次安装git且未设置过SSH key 安装git 创建gitee仓库 生成SSH密钥 在你想上传文件所在的文件夹内右键&#xff0c;打开git bash&#xff0c;第一次使用Git时需要先生成SSH ssh-keygen -t rsa -C "your_email"注意&#xff1a;ssh-keygen中间没有空格提…

git上传代码到码云(详细)

一、安装git .要使用git 先安转git 请到官网下载最新git http://git-scm.com/downloads 安装完成右键查看下是否有如下图所示的图标 二、本地建立git文件 本次建立的git文件是在本地完成的项目上建立的。找到当前完成项目的文件夹完成如下代码 &#xff08;1&#xff09;“…

【git】将代码上传到github

记录一下用Git初次配置远端仓库的学习过程。 假设你已经下载好了git&#xff0c;同时在github上也有了一个账号。 0.配置SSH 我们打开git bash&#xff0c;然后输入 $ ssh-keygen -t rsa -C "your_emailyouremail.com"这里的your_emailyouremail.com 是你在github…

怎么用git上传部分代码

怎么用Git上传部分代码? 0&#xff1a;在项目的根目录右键 Git Bash Here 1: 使用命令: git status (查看当前代码状态) 标红的为修改的代码 2&#xff1a;看一下那些文件是想要上传哪些文件是不想要上传的。 使用命令: git add . (全部上传) git add 文件 (上传指定文件) …

Git代码上传

以开源仓库为例&#xff0c;公司使用公司的仓库 首先需要注册一个gitee 创建仓 本地安装git 安装地址&#xff1a; https://git-scm.com/download/win 设置环境变量 在cmd设置GIT全局设置&#xff0c;输入你创建仓库的命令 创建git仓库 1、新建文件api_test 2、在cmd切换至此…

往git上上传代码

从Mac的终端上往git上上传代码 前言git的工作原理github的基本操作 前言 因为要完成小组的项目需要用到git&#xff0c;所以我提前学习了一下git的使用。 git的工作原理 首先我了解了一下git的工作原理 一般我们会把项目放到远程仓库里&#xff0c;也就是GitHub里。每个人都…

Git命令行上传本地代码

该篇文章主要参考(超详细&#xff09;使用git命令行将本地仓库代码上传到gitee/github远程仓库 写此博客主要为了日后查阅方便。 第一步&#xff1a;初始化git。进入到需要上传的项目的目录下&#xff0c;右键找到Git Bah Here&#xff0c;目的是可以直接在当前目录进行初始…

如何用git上传代码到github详细步骤

注册账户 想使用github&#xff0c;第一步肯定是要注册github账号&#xff0c;有了账号就是直接登录啦 可以直接打开http://github.com页面注册 创建仓库 注册、登录完成之后&#xff0c;在登录页面最上方用户菜单上选择 “”->New repository 创建一个新的仓库 进入创建仓库…

如何使用Git上传项目代码到github

github是一个基于git的代码托管平台&#xff0c;付费用户可以建私人仓库&#xff0c;我们一般的免费用户只能使用公共仓库&#xff0c;也就是代码要公开。这对于一般人来说公共仓库就已经足够了。 注册账户以及创建仓库 要想使用github第一步当然是注册github账号了。之后就可以…