jq实现轮播图

之前设计了一个校团委网站,里面有一个轮播图效果,上网后查看了许多方法,觉得下面这个方法最为适用,记录下来

js代码:

$(document).ready(function () {//无缝切换轮播var i = 0;//索引var clone = $(".banner .imgList li").first().clone();//克隆第一张图片$(".banner .imgList").append(clone);//复制到列表最后var size = $(".banner .imgList li").size();//记录图片总数/*自动轮播*/var t = setInterval(function () { i++; move();},2000);/*鼠标悬停事件*/$(".banner").hover(function () {clearInterval(t);//鼠标悬停时清除定时器
                }, function () {t = setInterval(function () { i++; move(); }, 2000); //鼠标移出时清除定时器
                });/*鼠标滑入原点事件*/$(".banner .indexList li").hover(function () {var index = $(this).index();//获取当前索引值i = index;$(".banner .imgList").stop().animate({ left: -index * 1366 }, 500);$(this).addClass("onIndex").siblings().removeClass("onIndex");$(".infoList").find("li").removeClass().eq(i).addClass("onInfo");});/*向左按钮*/$(".prev").click(function () {i--;move();})/*向右按钮*/$(".next").click(function () {i++;move();});/*移动事件*/function move() {//情况1索引为5if (i == size) {//当索引变为5,将left变为0,此时图片依旧未变,而之后把索引变为1,执行animate(),使得动画效果如同从第一张切换到第二张$(".banner .imgList").css({ left: 0 });//无时间移动i = 1;}//情况2索引为-1if (i == -1) {$(".banner .imgList").css({ left: -(size - 1) * 1366 });i = size - 2;}$(".banner .imgList").stop().animate({ left: -i * 1366 }, 500);if (i == size - 1) {//当索引指向的是复制的项,把突出显示转移到第一张图片$(".banner .indexList li").eq(0).addClass("onIndex").siblings().removeClass();$(".banner .infoList li").eq(0).addClass("onInfo").siblings().removeClass();} else {$(".banner .indexList li").eq(i).addClass("onIndex").siblings().removeClass();$(".banner .infoList li").eq(i).addClass("onInfo").siblings().removeClass();}}               
});

html代码:

<div class="wrapper"><div class="banner"><ul class="imgList"><li><a href="#"><img src="img/2017届粤西全体大合照.png"/></a></li><li><a href="#"><img src="img/部门素拓合照.png"/></a></li><li><a href="#"><img src="img/班级合照3.png"/></a></li><li><a href="#"><img src="img/粤西动员大会.png"/></a></li></ul><ul class="infoList"><li class="onInfo">就业工作学生协助会成功举办粤西专场招聘会</li><li >部门素拓合照</li><li >班级合照</li><li >粤西动员大会</li></ul><ul class="indexList"><li class="onIndex"></li><li></li><li></li><li></li></ul><div class="bg"></div><div class="instructor"><img class="prev" src="img/左箭头.png" /><img class="next" src="img/右箭头.png"/></div>    </div></div>

 下面是原生js实现图片轮播的功能:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">body,li,ul,img{margin: 0;padding:0;}ul{list-style: none;}img{width: 500px;height: 350px;}.wrapper{position: relative;top: 130px;left: 400px;width: 500px;height: 350px;overflow:hidden;}.banner{position: relative;width: 3000px;height: 350px;}.wrapper .banner .imgList{position: absolute;}.wrapper .banner .imgList li{float: left;}</style></head><body><div class="wrapper"><div class="banner"><ul class="imgList" title="2333" style="left: 0px;"><li><a href="#"><img src="img/一轮面试.jpg" /></a></li><li><a href="#"><img src="img/三轮合照.jpg" /></a></li><li><a href="#"><img src="img/二轮面试.jpg" /></a></li><li><a href="#"><img src="img/第一次会议修改.jpg" /></a></li><li><a href="#"><img src="img/粤西3.png" /></a></li></ul></div></div><script type="text/javascript">var i=0;var e=document.getElementsByClassName("imgList")[0];var list=e.getElementsByTagName("li")[0];var clone=list.cloneNode(true);//注意,appendChild是用于移动元素的,不是用来复制拷贝元素的            
            e.appendChild(clone);var width=list.getElementsByTagName("img")[0].width;    //获取宽度var length=e.getElementsByTagName("li").length;         //获取总长度function transMove(value){var left=parseInt(e.style.left);if(left>value){e.style.left=(left-10)+"px";var repeat="transMove("+value+")";var g=setTimeout(repeat,20);}}var t=setInterval(function(){i++;move();},2000);function move(){if(i==length){e.style.left="0px";//直接给标签添加属性
                    i=1;}if(i==-1){e.style.left='-1*(length-1)*width+"px"';i=length-2;}//e.style.setProperty("left",-1*i*width+"px");
                transMove(-1*i*width);}</script></body>
</html>

 

转载于:https://www.cnblogs.com/runhua/p/6863893.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于图片预加载的思考

引子&#xff1a; 很多时候&#xff0c;我们在写html页面的时候&#xff0c;当需要在页面中加入图片时&#xff0c;我们很自然地把图片直接用<img>标签放在了<body>里面&#xff0c;这本来是没有多大问题的。 但是当图片数量很多的时候&#xff0c;问题就来了。H…

oracle安装中桌面模式与服务器模式的去别

桌面模式只能本机使用。 服务器模式可以在网络中使用&#xff0c;也就是网络中的其他服务器可以使用。 所以安装时&#xff0c;如果是生产环境肯定是服务器模式。一般也都是服务器模式。 转载于:https://www.cnblogs.com/zhjx0521/p/7803691.html

python不能创建字典的是_用Python创建带有重复键的字典

用Python创建带有重复键的字典 我有以下列表&#xff0c;其中包含重复的具有不同值的汽车注册号。 我想将其转换为字典&#xff0c;该字典接受汽车登记号的多个键。 到目前为止&#xff0c;当我尝试将列表转换为字典时&#xff0c;它消除了键之一。 如何制作具有重复键的字典&a…

python中int是什么的缩写_python中int是什么类型

python中的基本数据类型1:虽然python中的变量不需要声明&#xff0c;但使用时必须赋值整形变量浮点型变量字符型2:可以一个给多个变量赋值&#xff0c;也可以多个给多个变量赋值3:python3中有6个标准数据类型Number(数字)*True1*False0*数值的除法(/)总是返回一个浮点数&#x…

redis cli命令

redis安装后&#xff0c;在src和/usr/local/bin下有几个以redis开头的可执行文件&#xff0c;称为redis shell&#xff0c;这些可执行文件可做很多事情。 可执行文件作用redis-server 启动redisredis-cliredis命令行工具redis-benchmark基准测试工具redis-check-aofAOF持久化文…

高级ZK:异步UI更新和后台处理–第2部分

介绍 在第1部分中&#xff0c;我展示了如何在ZK应用程序中使用服务器推送和线程来执行后台任务。 但是&#xff0c;这个简单的示例具有一个重大缺陷&#xff0c;这使其对于实际应用程序而言是一种不好的方法&#xff1a;它为每个后台任务启动了一个新线程。 JDK5引入了Execut…

css清除浮动的原理

最近学习css发现了高度塌陷时候要清除浮动,为了理解清楚浮动原理,网上找了不少资料,发现都写的不是很清楚,而且都是一模一样的内容,我在里分享一下我对清楚浮动原理的理解, 如果你已经很了解什么是浮动和浮动的效果你可以直接跳转到三.如何清除浮动(重点)阅读 一.什么是浮动首…

SpringBoot03 项目热部署

1 问题 在编写springBoot项目时&#xff0c;经常需要修改代码&#xff1b;但是每次修改代码后都需重新启动&#xff0c;修改的代码才会生效 2 这么实现IDEA能够像Eclipse那样保存过后就可以自动进行刷新呢 将springBoot项目进行热部署即可 3 如何实现SpringBoot项目的热部署01 …

STM32实现流水灯

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_…

jacob 报错 Can't co-create object

问题&#xff1a;开始时一切正常&#xff0c;后来什么都没该&#xff0c;出现Cant co-create object报错&#xff0c;即是创建不了ActiveXComponent wdnew ActiveXComponent("Word.Application"); 偶尔发现任务管理器中word进程居然达到10个&#xff0c;而我没有打开…

map分组后取前10个_map根据属性排序、取出map前n个

/*** map根据value排序* flag 1 正序* flag 0 倒序** param map* param flag* return*/public static > LinkedHashMap sortByValue(Map map, int flag) {LinkedHashMap sortMap new LinkedHashMap<>();if (flag 1) {map.entrySet().stream().sorted(Comparator.c…

wxpython可视化_使用wxPython的绘图模块wxPyPlot进行数据可视化

[Python进阶(四十)-数据可视化の使用matplotlib进行绘图前言  matplotlib是基于Python语言的开源项目&#xff0c;旨在为Python提供一个数据绘图包。我将在这篇文章中介绍matplotlib A #-*- coding: utf-8 -*- ############################################################…

在Java EE 6中将Bean验证与JAX-RS集成

JavaBeans验证&#xff08;Bean验证&#xff09;是一种新的验证模型&#xff0c;可作为Java EE 6平台的一部分使用。 约束条件支持Bean验证模型&#xff0c;该约束以注释的形式出现在JavaBeans组件&#xff08;例如托管Bean&#xff09;的字段&#xff0c;方法或类上。 javax.…

如何让浮动的元素换行??css

当你想要做成这种布局效果的时候 紫色框里面的内容那样 它是一个列表 li元素是块级元素 默认大小是父元素ul的宽 并且换行 如果li没有背景的话那就不用管了 可是问题来了它不但有背景 而且是根据文字自适应的宽高 这就是inline-block类型的功能了 那么想让li是inline-bl…

Python学习之类和实例

面向对象最重要的概念就是类&#xff08;Class&#xff09;和实例&#xff08;Instance&#xff09;&#xff0c;必须牢记类是抽象的模板&#xff0c;比如Student类&#xff0c;而实例是根据类创建出来的一个个具体的“对象”&#xff0c;每个对象都拥有相同的方法&#xff0c;…

解决sublime里面的vue高亮的问题

下载插件文件&#xff1a;https://github.com/vuejs/vue-syntax-highlight 直接在官网下载放在安装时候的packages目录下&#xff08;sublime text3\Sublime Text3\Data\Packages&#xff09; 在Packages文件夹下新建一个vue的文件&#xff0c;把第一步下载的文件复制进去 subl…

python矩形填充颜色_在Python中找到所有用0填充的矩形

假设我们有一个二进制2D矩阵&#xff0c;现在我们必须找到所有用0填充的矩形的起点和终点。我们必须牢记&#xff0c;矩形是分开的&#xff0c;彼此之间不接触&#xff0c;但是它们可以接触阵列边界。仅包含单个元素的矩形也是可能的。所以&#xff0c;如果输入像-101110111011…

python concat_python中merge、concat用法

转载&#xff1a;https://blog.csdn.net/ly_ysys629/article/details/73849543 参考&#xff1a;https://blog.csdn.net/stevenkwong/article/details/52540605 数据规整化&#xff1a;合并、清理、过滤 pandas和python标准库提供了一整套高级、灵活的、高效的核心函数和算法将…

Vue使用axios无法读取data的解决办法

今天发现Vue中使用了axios后&#xff0c;then方法中无法读取到data中的数据了&#xff0c;总是提示 Cannot set property xxx of undefined 上网找了一圈后发现了一下解决方法。 解决办法1&#xff1a; methods:{tap:function(){var selfthis;axios.get(xxxxxx).then(function(…

设置博客园标题样式

1.向博客园申请js权限 我们需要进入博客园自定义博客模板的页面&#xff0c;向博客园管理团队申请页面运行js的权限。【博客园】->【设置】->【博客设置】&#xff0c;点击页面上的js权限申请&#xff0c;然后填写申请的理由&#xff0c;耐心等几分钟&#xff0c;再刷新一…