jQuery之制作简单的轮播图效果

【源代码】

  链接:https://pan.baidu.com/s/1XpZ66D9fmSwWX3pCnGBqjA 密码:w104

【整体构思】

   这个轮播图使用的是jQuery,所以Js的整体代量比较少.

   轮播图,其实思路可以很多

    第一种: 

        通过修改每一张图片的透明度,让其每隔一段时间将其中的某一张图片透明度设为 1,而其他的设为0,从而实现图频轮流播放的效果。首先让一组图片绝对定位,并使其重叠,通过函数切换控制图片的透明度和定时器来触发该函数,改变不同图片的透明度。

    第二种:

        通过修改每一张图片的display,让其每隔一段时间将其中的某一张图片为block,而其他的设为none,从而实现图频轮流播放的效果。首先让一组图片绝对定位,并使其重叠,通过函数切换控制图片的display和定时器来触发该函数,改变不同图片的display样式。

    更多的思路,留给你们展示~

HTML代码

<!--
*
*
* @Author: wyy
* @Date:   2018-08-20 18:20:13
* @Email:  2752154874@qq.com
* @Last Modified by:   wyy
* @Last Modified time: 2018-08-21 20:06:51
*
*
-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>轮播图</title>
    <link rel="stylesheet" href="css/style.css">
    <script src="js/jquery-1.7.2.min.js"></script>
    <script src="js/index.js"></script>
</head>

<body>
    <div class="banner">
        <!-- 轮播图 -->
        <ul class="bg">
            <li class="current"><a href="#"><img src="./img/banner.jpg" alt="banner" width="1226" height="460"></a></li>
            <li><a href="#"><img src="./img/banner2.jpg" alt="banner" width="1226" height="460"></a></li>
            <li><a href="#"><img src="./img/banner3.jpg" alt="banner" width="1226" height="460"></a></li>
            <li><a href="#"><img src="./img/banner4.jpg" alt="banner" width="1226" height="460"></a></li>
            <li><a href="#"><img src="./img/banner5.jpg" alt="banner" width="1226" height="460"></a></li>
            <li><a href="#"><img src="./img/banner6.jpg" alt="banner" width="1226" height="460"></a></li>
        </ul>
        <!-- 左右箭头 -->
        <div class="left"></div>
        <div class="right"></div>
        <!-- 小圆点 -->
        <div class="list">
            <ul>
                <li id="bg_1" class="list-btn current"></li>
                <li id="bg_2" class="list-btn"></li>
                <li id="bg_3" class="list-btn"></li>
                <li id="bg_4" class="list-btn"></li>
                <li id="bg_5" class="list-btn"></li>
                <li id="bg_6" class="list-btn"></li>
            </ul>
        </div>
    </div>
</body>

</html>

  

CSS代码

/*
* @Author: wyy
* @Date:   2018-08-20 18:26:46
* @Email:  2752154874@qq.com
* @Last Modified by:   wyy
* @Last Modified time: 2018-08-21 20:30:32
*/

*{
    margin: 0;
    padding: 0;
}

li {
    list-style: none;
}

a {
    text-decoration: none;
}

.banner {
    width: 1226px;
    height: 460px;
    margin: 0 auto;
    position: relative;
}

a {
    color: #fff;
}

a:hover {
    color: #FFAA07FF;
}

a:hover .second {
    display: block;
}

.bg li{
    list-style: none;
    float: left;
    display: none;
    position: absolute;
}

.bg li.current{
    display: block;
}

.left {
    width: 40px;
    height: 70px;
    background: url("../img/icon-slides.png") 83px 0px;
    position: absolute;
    top: 42%;
}

.left:hover {
    background-position: 0px 0px;
}

.right {
    width: 40px;
    height: 70px;
    background: url("../img/icon-slides.png") 40px 0px;
    position: absolute;
    right: 0px;
    top: 42%;
}

.right:hover {
    background-position: -43px 0px;
}

.list {
    width: 145px;
    height: 20px;
    position: absolute;
    right: 30px;
    bottom: 15px;
}

.list-btn {
    width: 12px;
    height: 12px;
    list-style: none;
    float: left;
    background: lightgrey;
    margin-left: 6px;
    border-radius:6px;
    cousor:pointer;
}

.list ul .current{
    background: #f88535;
}

JS代码

/*
 * @Author: wyy
 * @Date:   2018-08-20 18:40:26
 * @Email:  2752154874@qq.com
 * @Last Modified by:   wyy
 * @Last Modified time: 2018-08-21 20:48:06
 */

// 全局变量
var index = 0;

$(function() {

    // 定时器
    (function() {
        setInterval(function() {
            // 自动换图代码
            changePic();

            // 改变index值
            index++;

            if (index == 5) {
                index = 0;
            }
        }, 1000)
    })();


    // 找到所有的图片

    var pics = $(".bg li");

    // 找到所有的小圆点

    var lis = $(".list li");

    // 提取公共的换图方法
    function changePic() {
        // 控制li的class实现换图
        pics.eq(index).addClass("current").siblings().removeClass("current"); // 给当前的元素添加class并移除兄弟元素的class

        // 控制小圆点颜色变化
        lis.eq(index).addClass("current").siblings().removeClass("current");
    }

    // 点击小圆点换图
    lis.click(function() {

        // 改变index的值
        index = $(this).index(); //this代表当前每一个li元素
        // F12查看日志,查看索引是否正确
        // console.log(index);
        //调用函数
        changePic();

    })
    // 点击左右箭头换图
    $(".left").click(function() {
        // 点击左侧箭头
        index--;
        if (index == -1) {
            index = 5;
        }
        changePic();
    })

    $(".right").click(function() {
        // 点击右侧箭头
        index++;
        if (index == 6) {
            index = 0;
        }
        changePic();
    })
})

  

原文地址:https://www.cnblogs.com/wangyang0210/p/9513997.html