在页面的指定位置实现的图片自动的左右轮流切换展示效果,当点击图片左下的标签(或中间的小圆点)切换到对应的图片。接下来通过本文给大家分享用jQuery实现圆点图片轮播效果实例代码,需要的朋友参考下,希望能帮助到大家。
图片轮播效果 :
在页面的指定位置实现的图片自动的左右轮流切换展示,效果为无缝连接;
点击图片左下的标签(或中间的小圆点)切换到对应的图片;
点击图片的左右切换标签;
整体思路 :
--------------------------------------------------------------------------------
自动轮播: 将一个用于放置图片素材的与显示框同高度的大p放入显示框,将图片素材放入大的p中,通过jquery的animate()方法改变大p相对于显示框绝对位置的left值及变化时间实现图片的滑动;使用setInterval()方法设置定时器,达到自动播放效果;无缝连续播放的重点在于,第一张图片与最后一张图片要相同,这样播放完最后一张图片后将大p框的left设定为初始值,再将与图片索引相同的变量设定为1(第二张),这样就能达到无缝连续滑动效果;
--------------------------------------------------------------------------------
点击标签切换到对应图片: 对点击切换图片的li标签添加鼠标点击事件,若存在定时器的先清除,使用$(this).Index()获取当前点击图片的序号(索引),将大p的left值设置为当前图片位置的值,同时别忘了将当前li标签设置深颜色的明显效果,其他li标签设置初始效果;在事件中设置倒计时,当鼠标点击后一段时间不进行其他操作,则恢复自动播放的定时器;
--------------------------------------------------------------------------------
点击向左向右标签切换到上/下一张图片: 该标签使用16e3673c8f9326235a5217cdf963cf19标签达到效果更好(防止连续点击时产生选中页面变蓝的现象),先获取点击时图片的编号,此时不能使用$(this).Index(),因为此时this指代的对象为左右切换标签,而不是图片对象,还记得上面那个与图片索引相同的变量吗?我们需要一开始就设定它为全局变量(我将它起名为rcd),它的值相当于是和图片,li标签一起绑定的,在还没有点击向左向右标签时,图片是在轮播的,rcd变量中存着当前图片的序号,因此,尽管用不了this,我们可以用rcd+1/-1找到向右滑/向左划的图片编号,有了编号,就可以知道大p需要运动到的位置,和设置左下方的标签显示状态了.当rcd-1==-1时,将p的位置设置为最后一张图片显示的位置,然后将rcd设置为倒数第二张图片对应的编号;当rcd+1比最后一张还多一时,将p的位置设置为第一张图片显示的位置,将rcd设置为第二张图片对应的编号即可.
--------------------------------------------------------------------------------
代码实现如下 :
<script src="jquery.min.js" type="text/javascript" charset="utf-8"></script> //引入jquery (css代码未贴) <script type="text/javascript"> $(function(){ var rcd=0; //代表图片和li标签编号的全局变量 // 滑动函数 function slide(){ rcd++; if(rcd==4){ //右滑倒最后一张时,将图片设定为第一张的位置,即将滑动的图片设定为第二张(rcd=1) $('#sld').css({'left':'0'}); rcd=1; }; var dis = rcd*(-1210)+'px'; //这里的1210是每张图片的宽度,rcd和dis的关系就是编号和p left值的关系 $('#sld').stop().animate({'left':dis},1000) //设定left if (rcd==3) { //当切换到最后一张时(一共4张图片),将左下方的标签样式也改成与第一张一样的 $('#fix ul li').eq(0).css({'opacity': '0.6'}).siblings('li').css({'opacity': '0.2'}) }else{ $('#fix ul li').eq(rcd).css({'opacity': '0.6'}).siblings('li').css({'opacity': '0.2'}) //不是最后一张那么就正常执行 } } // 设定定时器,开始轮播 var timer = setInterval(slide,2000); var st; //声明倒计时函数变量名 // 绑定li鼠标点击事件 $('#fix ul li').click(function(){ clearInterval(timer); //清除定时器(同下一行) clearTimeout(st); var rcd = $(this).index(); //获得点击的li的编号 var dis =rcd*(-1210)+'px'; //获得该编号对应的p的left值 $('#sld').stop().animate({'left':dis},500) //开始运动 $('#fix ul li').eq(rcd).css({'opacity': '0.6'}).siblings('li').css({'opacity': '0.2'}) //设置当前li样式,其他li变为初始值 st = setTimeout(function(){ //设置定时器,若3秒内没有鼠标点击操作,就重新设置轮播定时器 timer = setInterval(slide,2000); },3000) }); // 左图标点击事件 $('#fix .lt').click(function(){ clearInterval(timer); clearTimeout(st); rcd--; //点击前的编号-1 if(rcd==-1){ //如果rcd减后值为-1,那么将p的left设置为最后一张图显示的值,并将rcd设置为倒数第二张的编号 $('#sld').css({'left':'-3630px'}); rcd=2; }; var dis = rcd*(-1210)+'px'; $('#sld').stop().animate({'left':dis},1000) //运动 if (rcd==3) { //与前面相同 $('#fix ul li').eq(0).css({'opacity': '0.6'}).siblings('li').css({'opacity': '0.2'}) }else{ $('#fix ul li').eq(rcd).css({'opacity': '0.6'}).siblings('li').css({'opacity': '0.2'}) } st = setTimeout(function(){ timer = setInterval(slide,2000); },3000) }) // 右图标点击事件 $('#fix .rt').click(function(){ clearInterval(timer); clearTimeout(st); slide(); //右图标点击一次与滑动函数一致 st = setTimeout(function(){ timer = setInterval(slide,2000); },3000) }) // 给#fix p加鼠标移入事件 $('#fix').mouseenter(function(){ $('#fix a').css({'display':'block'}); //鼠标移入时,向左向右图标显示 }) // 给#fix p加鼠标移出事件 $('#fix').mouseleave(function(){ $('#fix a').css({'display':'none'}); //鼠标移出时,向左向右图标隐藏 }) }) </script> </head> <body> <p id="fix"> <p id="sld"> <img src="轮播图/ph1.png"/> <img src="轮播图/ph2.jpg"/> <img src="轮播图/ph3.jpg"/> <img src="轮播图/ph1.png"/> </p> <ul> <li style="opacity: 0.6;">iPhone6</li> <li>Mate9</li> <li>vivo X9</li> </ul> <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" class="lt"><img src="轮播图/left.png"/></a> //阻止浏览器的默认跳转 <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" class="rt"><img src="轮播图/right.png"/></a> </p> </body>
大家学会了吗?赶紧动手尝试一下吧。
相关推荐:
以上是jQuery实现圆点图片轮播实例分享的详细内容。更多信息请关注PHP中文网其他相关文章!

引言我知道你可能会觉得奇怪,JavaScript、C 和浏览器之间到底有什么关系?它们之间看似毫无关联,但实际上,它们在现代网络开发中扮演着非常重要的角色。今天我们就来深入探讨一下这三者之间的紧密联系。通过这篇文章,你将了解到JavaScript如何在浏览器中运行,C 在浏览器引擎中的作用,以及它们如何共同推动网页的渲染和交互。JavaScript与浏览器的关系我们都知道,JavaScript是前端开发的核心语言,它直接在浏览器中运行,让网页变得生动有趣。你是否曾经想过,为什么JavaScr

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Dreamweaver CS6
视觉化网页开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。