美文网首页
JQuery教程:实现轮播图效果

JQuery教程:实现轮播图效果

作者: 千锋陈老师 | 来源:发表于2019-05-30 17:00 被阅读0次

轮播图说起来非常简单,就是几张图片一直不停的轮流播放,但是要想写好代码,也要考虑下性能问题,下面我们来简单的实现一下。

首先,页面代码:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title></title>

<link rel="stylesheet" type="text/css" href="css/ad.css"/>

<script src="js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>

<script src="js/ad.js" type="text/javascript" charset="utf-8"></script>

</head>

<body>

<div id="box">

<div id="imgDiv">

<img id="leftImg"/>

<img id="centerImg"/>

<img id="rightImg"/>

</div>

<span id="leftBtn"></span>

<span id="rightBtn"></span>

<span id="circleSpan"></span>

</div>

</body>

</html>

接下来,写样式内容ad.css,将页面内容完善。

body{

margin: 0px;

background-color: #ccc;

}

#box{

width: 520px;

height: 280px;

margin: 60px auto;

position: relative;

}

#imgDiv{

width: 520px;

height: 280px;

overflow: hidden;

position: relative;

border-radius: 10px;

}

#imgDiv img{

position: absolute;

}

#leftImg{

left:-520px;

}

#centerImg{

left:0px;

}

#rightImg{

left: 520px;

}

#leftBtn{

display: none;

width: 71px;

height: 71px;

position: absolute;

left: -35px;

top: 105px;

background-image: url(../img/but.png);

background-position-x: 71px;

}

#leftBtn:hover{

background-position-x: 0px;

}

#rightBtn{

display: none;

width: 71px;

height: 71px;

position: absolute;

left: 485px;

top: 105px;

background-image: url(../img/but.png);

background-position: 71px 71px;

}

#rightBtn:hover{

background-position-x: 0px;

}

#circleSpan{

display: block;

position: absolute;

height: 30px;

background-color: rgba(0,0,0,0.5);

border-radius: 10px;

left: 50px;

top: 240px;

}

#circleSpan span{

display: block;

width: 10px;

height: 10px;

border-radius: 5px;

background-color: white;

margin: 10px 5px 10px 5px;

float: left;

}

这些都是页面基础代码,接下来我们主要来看一下JS代码ad.js。

$(function(){

// 设定循环操作

var time = setInterval(move, 2000);

// 定义图片数组

var imgArr = ["img/1.jpg", "img/2.jpg", "img/3.jpg", "img/4.jpg", "img/5.jpg"];

// 得到3张图片框

var leftImg = $("#leftImg");

var centerImg = $("#centerImg");

var rightImg = $("#rightImg");

// 设置当前显示的图片

var currentIndex = 0;

// 设置初始图片

leftImg.attr("src", imgArr[imgArr.length - 1]);

centerImg.attr("src", imgArr[0]);

rightImg.attr("src", imgArr[1]);

// 设置圆点的数量和位置

for (var i = 0; i < imgArr.length; i++) {

$("#circleSpan").append("<span></span>");

}

$("#circleSpan").css("left", (520 - 20 * imgArr.length)/2 + "px");

$("#circleSpan span:first").css("background-color", "orange");

// 鼠标悬停和离开事件

$("#box").hover(function(){

$("#leftBtn,#rightBtn").show();

// 停止循环

clearInterval(time);

}, function(){

$("#leftBtn,#rightBtn").hide();

// 继续循环

time = setInterval(move, 4000);

});

// 给左右按钮添加点击事件

$("#leftBtn").click(function(){

// 每次滚动显示下一张的图片

if(currentIndex == 0){

currentIndex = imgArr.length - 1;

}else{

currentIndex--;

}

// 执行滚动的动画

leftImg.stop(false, true).animate({"left":"0px"}, 100);

centerImg.stop(false, true).animate({"left":"520px"}, 100);

rightImg.stop(false, true).animate({"left": "1040px"}, 102, function(){

mvoeComplete();

});

});

$("#rightBtn").click(function(){

// 每次滚动显示下一张的图片

currentIndex++;

// 执行滚动的动画

leftImg.stop(false, true).animate({"left":"-1040px"}, 100);

centerImg.stop(false, true).animate({"left":"-520px"}, 100);

rightImg.stop(false, true).animate({"left": "0px"}, 102, function(){

// 动画结束时执行

mvoeComplete();

});

});

function move(){

// 每次滚动显示下一张的图片

currentIndex++;

// 执行滚动的动画

leftImg.stop(false, true).animate({"left":"-1040px"}, 500);

centerImg.stop(false, true).animate({"left":"-520px"}, 500);

rightImg.stop(false, true).animate({"left": "0px"}, 502, function(){

// 动画结束时执行

mvoeComplete();

});

}

function mvoeComplete(){

// 当滚动结束后位置改变回来

leftImg.css({"left":"-520px"});

centerImg.css({"left":"0px"});

rightImg.css({"left":"520px"});

// 当滚动结束后改变图片显示

leftImg.attr("src", imgArr[(currentIndex - 1) % imgArr.length]);

centerImg.attr("src", imgArr[currentIndex % imgArr.length]);

rightImg.attr("src", imgArr[(currentIndex + 1) % imgArr.length]);

// 改变圆点的颜色

$("#circleSpan span:eq(" + (currentIndex % imgArr.length) + ")").css("background-color", "orange");

// 将其他的圆点颜色还原成白色

$("#circleSpan span:not(:eq(" + (currentIndex % imgArr.length) + "))").css("background-color", "white");

}

});

至此,就完成了一个简单的轮播图效果,将js中的图片数组改成自己的图片路径即可。

相关文章

  • jquery代码实现爱奇艺轮播图效果

    爱奇艺轮播图效果的jquery代码实现。 html部分: css部分: jquery部分:

  • JQuery教程:实现轮播图效果

    轮播图说起来非常简单,就是几张图片一直不停的轮流播放,但是要想写好代码,也要考虑下性能问题,下面我们来简单的实现一...

  • 2019-06-27 @于志程

    Jquery 动态实现3D轮播效果 (简版) 先看一下效果图 我使用的是animate 自定义动画效果实现 首先定...

  • 05_jQuery_无缝滚动轮播效果插件封装

    使用 jQuery 封装一个无缝滚动轮播效果插件。 效果图: 在线预览:jQuery_LKMarqueeSlide...

  • 轮播图(Carousel)

    以下内容参考菜鸟教程 一个简单的轮播图由三个方面组成: 轮播指标(即轮播图下方的圆点) 轮播项目(即要实现轮播效果...

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • 轮播图心得

    轮播图 写轮播图之前我们要认识到几个问题:一、什么是轮播图?二、怎么实现轮播效果?三、轮播图还有什么小功能可以实现...

  • android轮播图效果

    先上效果图: viewpager+handler+runnableTask实现轮播图效果。可以自动轮播,左右无限滑...

  • swift UICollectionView 实现无限轮播图

    无线轮播图的实现方式有很多,这里介绍如何通过 UICollectionView 实现无线轮播图.效果图如下: 具体...

  • jQuery页面滑动插件,支持全屏滚动和轮播图

    page-slide jQuery页面滑动插件,可简单实现全屏滚动和轮播图效果,觉得不错可以star一下 源码地址...

网友评论

      本文标题:JQuery教程:实现轮播图效果

      本文链接:https://www.haomeiwen.com/subject/klwvtctx.html