最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

JS实现图片轮播的实例

来源:懂视网 责编:小OO 时间:2020-11-27 20:03:31
文档

JS实现图片轮播的实例

效果如下:<。-- 最外层部分 -->;<;p id=";banner";>;<。-- 轮播部分 -->;<;ul class=";imgList";>;<;
推荐度:
导读效果如下:<。-- 最外层部分 -->;<;p id=";banner";>;<。-- 轮播部分 -->;<;ul class=";imgList";>;<;
本文主要为大家带来一篇使用JS实现图片轮播的实例(前后首尾相接),代码参考了一位已经写好了图片轮播功能的(再次表示感谢),但是没有首尾相接的功能,本人在此基础上增加了首尾相接功能。

效果如下:

<!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,p,ul,li,a,img{margin: 0;padding: 0;}
 ul,li{list-style: none;}
 a{text-decoration: none;}
 #wrapper{
 position: relative;
 margin: 30px auto; /* 上下边距30px,水平居中 */
 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>
 <p id="wrapper"><!-- 最外层部分 -->
 <p 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">
</p>
</p>
<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>

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

JS实现图片轮播的实例

效果如下:<。-- 最外层部分 -->;<;p id=";banner";>;<。-- 轮播部分 -->;<;ul class=";imgList";>;<;
推荐度:
标签: 图片 轮播 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top