时间:2021-05-25
最近各种跑面试,终于还是被问到这个,一脑子浆糊,当时没想出来首尾相接怎么搞,回来之后研究了一波,终于搞出来了,不多说,直接看代码
代码参考了一位已经写好了图片轮播功能的(再次表示感谢),但是没有首尾相接的功能,本人在此基础上增加了首尾相接功能。
效果如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>图片轮播</title> <style type="text/css"> body,div,ul,li,a,img{margin: 0;padding: 0;} ul,li{list-style: none;} a{text-decoration: none;} #wrapper{ position: relative; margin: 30px auto; width: 400px; height: 200px; } #banner{ position:relative; width: 400px; height: 200px; overflow: hidden; } .imgList{ position:relative; width:2000px; height:200px; z-index: 10; overflow: hidden; } .imgList li{float:left;display: inline;} #prev, #next{ position: absolute; top:80px; z-index: 20; cursor: pointer; opacity: 0.2; filter:alpha(opacity=20); } #prev{left: 10px;} #next{right: 10px;} #prev:hover, #next:hover{opacity: 0.5;filter:alpha(opacity=50);}</style></head><body> <div id="wrapper"><!-- 最外层部分 --> <div id="banner"><!-- 轮播部分 --> <ul class="imgList"><!-- 图片部分 --> <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="./img/1.jpg" width="400px" height="200px" alt="1"></a></li> <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="./img/2.jpg" width="400px" height="200px" alt="2"></a></li> <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="./img/3.jpg" width="400px" height="200px" alt="3"></a></li> <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="./img/4.jpg" width="400px" height="200px" alt="4"></a></li> <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><img src="./img/5.jpg" width="400px" height="200px" alt="5"></a></li> </ul> <img src="./img/prev.png" width="40px" height="40px" id="prev"> <img src="./img/next.png" width="40px" height="40px" id="next"></div></div><script type="text/javascript" src="./js/jquery-3.2.1.min.js"></script><script type="text/javascript">var curIndex = 0, //当前index imgLen = $(".imgList li").length; //图片总数$(".imgList").css("width", (imgLen+1)*400+"px");// 定时器自动变换3秒每次var autoChange = setInterval(function(){ if(curIndex < imgLen-1){ curIndex ++; }else{ curIndex = 0; } //调用变换处理函数 changeTo(curIndex);},3000);//左箭头滑入滑出事件处理$("#prev").hover(function(){ //滑入清除定时器 clearInterval(autoChange);}, function(){ //滑出则重置定时器 autoChangeAgain();});//左箭头点击处理$("#prev").click(function(){ //根据curIndex进行上一个图片处理 // curIndex = (curIndex > 0) ? (--curIndex) : (imgLen - 1); if (curIndex == 0) { var element = document.createElement("li"); element.innerHTML = $(".imgList li")[imgLen - 1].innerHTML; // $(".imgList li")[imgLen - 1].remove(); $(".imgList").prepend(element); $(".imgList").css("left", -1*400+"px"); changeTo(curIndex); curIndex = -1; } else if (curIndex == -1) { $(".imgList").css("left", -(imgLen-1)*400+"px"); curIndex = imgLen-2; $(".imgList li")[0].remove(); changeTo(curIndex); } else { --curIndex; changeTo(curIndex); }});//右箭头滑入滑出事件处理$("#next").hover(function(){ //滑入清除定时器 clearInterval(autoChange);}, function(){ //滑出则重置定时器 autoChangeAgain();});//右箭头点击处理$("#next").click(function(){ // curIndex = (curIndex < imgLen - 1) ? (++curIndex) : 0; console.log(imgLen); if (curIndex == imgLen-1) { var element = document.createElement("li"); element.innerHTML = $(".imgList li")[0].innerHTML; // $(".imgList li")[0].remove(); $(".imgList").append(element); ++curIndex; } else if (curIndex == imgLen) { curIndex = 0; $(".imgList").css("left", "0px"); $(".imgList li")[imgLen].remove(); curIndex++; } else { ++curIndex; } changeTo(curIndex);});//清除定时器时候的重置定时器--封装function autoChangeAgain(){ autoChange = setInterval(function(){ if(curIndex < imgLen-1){ curIndex ++; }else{ curIndex = 0; } //调用变换处理函数 changeTo(curIndex); },3000);}function changeTo(num){ var goLeft = num * 400; $(".imgList").animate({left: "-" + goLeft + "px"},500);}</script></body></html>以上这篇使用JS实现图片轮播的实例(前后首尾相接)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了javascript实现状态栏文字首尾相接循环滚动的方法。分享给大家供大家参考。具体实现方法如下:中国风setInterval("statusSc
本文示例都是用小程序写的,但是不影响要实现的功能。wxml装图片的盒子多复制一份,让循环图片的首尾相接wxss.dis-flex{display:flex;di
本文实例讲述了JS实现简易图片轮播效果的方法。分享给大家供大家参考。具体如下:这里使用JS制作简易图片轮播效果:制作比较粗糙,使用的图片是width:660pp
使用AE快速的将图层首尾相接排序完成。1、首先将你的需要的素材导入进来。2、按住ctrl键,点选要排序的素材,需要排在前面的就先点选它。3、选完之后点击右键,接
本文在前一篇js焦点轮播效果的基础上,使用函数递归实现图片滑动切换,采用辅助图片实现图片无限滚动等技巧,具体内容如下假如前后不加一张图片的话,图片顺序为[1,2