基于Jquery实现的轮播图

前阵子我用js写了一个轮播图,现在的话换成jQuery来实现,先看看效果图

首先是html结构,如下:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>jquery版图片轮播</title>
        <link rel="stylesheet" href="css/index.css" />
    </head>

    <body>
        <div class="container">
            <div class="inner clearfix">
                <div class="innerwraper"><img src="img/1.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/2.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/3.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/4.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/5.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/6.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/7.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/8.jpg" alt="" /></div>
                <div class="innerwraper"><img src="img/1.jpg" alt="" /></div>
            </div>
            <div class="pagination">
                <span class="active">1</span>
                <span>2</span>
                <span>3</span>
                <span>4</span>
                <span>5</span>
                <span>6</span>
                <span>7</span>
                <span>8</span>
            </div>
            <a href="javascript:void(0)" class="left-arrow">&lt;</a>
            <a href="javascript:void(0)" class="right-arrow">&gt;</a>
        </div>
        <script src="js/jquery-1.11.3.min.js"></script>
        <script src="js/new.js"></script>
    </body>

</html>

关于css的相关设置:

.container {
    margin: 20px auto;
    width: 510px;
    overflow: hidden;
    position: relative;
}
.inner {
    position: relative;
    width: 9999px;
    left: 0;
    top: 0;
}
.innerwraper {
    float: left;
}
.clearfix {
    *zoom: 1;
}
.clearfix:after {
    display: block;
    clear: both;
    visibility: hidden;
    content: "";
    height: 0;
}
a {
    text-decoration: none;
}
.left-arrow {
    position: absolute;
    left: 0;
    top: 40%;
    width: 10%;
    height: 20px;
    text-align: center;
    line-height: 20px;
    font-size: 20px;
}
.right-arrow {
    position: absolute;
    right: 0;
    top: 40%;
    width: 10%;
    height: 20px;
    font-size: 20px;
    text-align: center;
    line-height: 20px;
}
.pagination{
    position: absolute;
    bottom: 10px;
    width: 100%;
    text-align: center;
}
.pagination span{
    display: inline-block;
    width: 30px;
    height: 30px;
    background-color: yellow;
    line-height: 30px;
    border-radius: 50%;
    cursor: pointer;
}
.pagination .active{
    background-color: red;
    color: #FFFFFF;
}

我是用的jquery版本是jquery-1.11.3.min.js,这里就不提供了,各位童鞋自己去下载哈

js源代码:

var innerGroup = $(".innerwraper");
var leftArrow = $(".left-arrow");
var rightArrow = $(".right-arrow");
var spanGroup = $(".pagination span");
var imgWidth = $(".innerwraper img:first-child").eq(0).width();
var _index = 0;
var timer = null;
var flag = true;
rightArrow.on("click", function() {
    //右箭头
    flag = false;
    clearInterval(timer);
    _index++;
    selectPic(_index);
})
leftArrow.on("click", function() {
    //左箭头
    flag = false;
    clearInterval(timer);
    if (_index == 0) {
        _index = innerGroup.length - 1;
        $(".inner").css("left", -(innerGroup.length - 1) * imgWidth);
    }
    _index--;
    selectPic(_index);
})
spanGroup.on("click", function() {
    //导航切换
    _index = spanGroup.index($(this));
    selectPic(_index);
})

$(".container").hover(function() {
    //鼠标移入
    clearInterval(timer);
    flag = false;
}, function() {
    flag = true;
    timer = setInterval(go, 3000);
});

function autoGo(bol) {
    //自动行走
    if (bol) {
        timer = setInterval(go, 3000);
    }
}
autoGo(flag);

function go() {
    //计时器的函数
    _index++;
    selectPic(_index);
}
function selectPic(num) {
    $(".pagination span").eq(num).addClass("active").siblings().removeClass("active");
    $(".inner").animate({
        left: -num * imgWidth,
    }, 1000, function() {
        //检查是否到最后一张
        if (_index == innerGroup.length - 1) {
            _index %= 8;
            $(".inner").css("left", "0px");
            $(".pagination span").eq(0).addClass("active").siblings().removeClass("active");
        }
    })
}

其实原理都是一样,不过jQuery的原理和js原理都一样,不过不同的是jQuery已经把相关的方法封装成了函数,兼容性的相关设置也已经写好。

时间: 2024-09-29 01:18:39

基于Jquery实现的轮播图的相关文章

jQuery补充,基于jQuery的bxslider轮播器插件

基于jQuery的bxslider轮播器插件 html <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=n

jQuery淡入淡出轮播图实现

大家好我是QD小白,这是人生第一次写博客,准备写的内容是Jquery淡入淡出轮播图实现,在此之前学习JS写的轮播图效果都感觉不怎么好,学习了jQuery里的淡入淡出效果后又写了一次轮播图效果明显感觉好了许多.现在我就来分享下自己写轮播图的思路和方法. HTML部分: <div id="img-box" style="width:700px; height:350px;"> <img style="opacity: 1;" wid

Jquery淡入淡出轮播图

Jquery淡入淡出轮播图 因为代码不多所以我就写一个html文件里了 html代码 <div class="banner"> <ul> <li><a href="javascript:;"><img src="./1 (1).png" /></a></li> <li><a href="javascript:;"><

(新手向)基于Bootstrap的简单轮播图的手机实现

个人电脑里存了不少适合手机欣赏的图片,但是放手机里看是件很占据资源的事.鉴于家里有一台电脑经常开着,正好用来做家庭局域网共享,于是笔者就设想通过一种比较简单环保的思路.通过手机访问电脑内的图片. 首先是本地站点搭建:win+R输入mmc打开控制台,文件-添加/删除管理单元,Internet信息服务.添加确定,右侧基本信息,新建网站-把路径改了.设定一个端口号,手机浏览器就可以输入  电脑局域网ip:端口号 就可以连上去了. 接下来问题来了,一个个点击查看然后关闭图片是一件更不环保的事.何不做一个

jquery简单无缝轮播图实现

此简单轮播图布局原理是: 一个div包含图片列表,和控制按钮.其宽度等于图片的宽度,溢出隐藏. 图片要左浮动. jquery原理: 开一个定时器,隔一段时间执行图片列表向左移动一个图片的宽度,同时在移动时设置一个回调函数. 把向左移动的图片,也是图片列表的第一张图片,添加到图片列表ul的末尾. 这样实现了,图片自动播放的效果. 怎么带动图片控制的小按钮变亮? 因为每一次图片轮播,都会改变图片值得索引,那就给函数加一个变量 i ,每一次执行定时器都会i++: var spanindex=i%4;

jQuery实现简易轮播图的效果

(图片素材取自于小米官网) 刚开始接触jQuery的学习,个人觉得如果为了实现多数的动态效果,jQuery的确很简易方便. 下面简易的轮播图效果,还请前辈多多指教~ (努力学习react vue angular中,加油~~~) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> &

用jQuery写的轮播图

效果图: 与前一篇写的轮播图实现的效果一致,这个是用jQuery写的,相对简单一点的吧. 这个是js代码,我先粘上去. <script src="../jquery-3.3.1.min.js"></script> <script> var index = 1; var newLeft = 0; var interval; var buttSpan = $(".butt").children(); function nextPage

用 jQuery 手写轮播图

先上个效果截图: 主要包含以下功能点: * 1.页面加载完,自动循环翻页* 2.翻页按钮,翻页* 3.定点翻页* 4.翻页时同步圆点状态* 5.鼠标进入,停止自动翻页* 6.快速点击翻页的bug(加 isPaging 标志) 主要包含以下功能点: * 1.页面加载完,自动循环翻页* 2.翻页按钮,翻页* 3.定点翻页* 4.翻页时同步圆点状态* 5.鼠标进入,停止自动翻页* 6.快速点击翻页的bug(加 isPaging 标志) 上代码: <!DOCTYPE html> <html>

写jquery插件【轮播图】历程

轮播图插件的任务已经接近尾声,在书写轮播图期间确实有一些小的感触的.感兴趣的可以访问我的轮播图的线上地址:轮播图 首先,轮播图插件其实并不是我第一次写,之前也写过,不过那时候是按照别人的思路写下来的,算起来大概有一年了,这次又一次开始轮播图是因为拜读了<单页面Web应用 JavaScript从前端到后端>的这本书的1-4章,我开始跃跃欲试的想把它用到自己的代码中,书本中前四章的思想是将js模块化,我就跟着作者的代码思路以及代码习惯先尝试着做了个轮播图,发现作者的模块化思想非常好,时间长了,养成