轮播图案例

给大家先讲一下大致思路:

1,先获取;
2,左右按钮分别给点击事件,点击下一张图片,除下一张其他图片都要隐藏,这时就要用到排他思想,
3,让他自己执行,就要用到定时器;
4,鼠标划进去,图片自执行停止,就得清除定时器;鼠标划出去,图片继续播放;
5,点击图片导航切换图片需要用到tab切换原理;

具体代码如下:

HTML部分

<body>
    <div>
        <ul >
            <li class="active"><img src="./images/movie1.jpg" alt=""></li>
            <li><img src="./images/movie10.jpg" alt=""></li>
            <li><img src="./images/movie9.jpg" alt=""></li>
            <li><img src="./images/movie8.jpg" alt=""></li>
            <li><img src="./images/movie7.jpg" alt=""></li>
            <li><img src="./images/movie6.jpg" alt=""></li>
        </ul>
        <ol>
            <li class="sky">1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
        </ol>
        <span id="zuo">&lt;</span>
        <span id="you">&gt;</span>
    </div>
</body>
<script src="./js/index.js">

css样式

* {
    margin: 0;
    padding: 0;
    list-style: none;
}

@mixin wh($w, $h, $b) {
    width: $w;
    height: $h;
    background-color: $b;
}

div {
    @include wh(1000px, 560px, none);
    margin: 0 auto;
    position: relative;

    ul {
        li {
            @include wh(100%, 550px, none);
            display: none;

            img {
                @include wh(100%, 100%, none);
            }
        }

        .active {
            display: block;
        }
    }
    ol{
        position: absolute;
        bottom: 30px;
        float: left;
        li{
            @include wh(40px,40px,#fc2);
            float: left;
            color: #ffffff;
            border-radius: 50%;
            text-align: center;
            line-height: 40px;
            font-size: 25px;
            margin-left: 50px;
        }
      
        .sky{
            background-color: red;
            color: #ffffff;
        }
      
    }

    span {
        @include wh(80px, 120px, rgba(34, 23, 45, 0.5));
        position: absolute;
        top: 50% ;
        margin-top:-60px;  
        font-size: 50px;
        line-height: 120px;
        text-align: center;
        color: #ffffff;
        &:nth-of-type(1){
            position: absolute;
            left: 0px;
        }
        &:nth-of-type(2){
            position: absolute;
            right: 0px;
        }
    }

}

js部分,我们先获取

    var zuo = document.querySelector('#zuo');//获取第一个按钮
    var you = document.querySelector('#you');//获取第二个按钮
    var imgs = document.querySelectorAll('ul li');//获取图片
    var ol_lis = document.querySelectorAll('ol li');//获取li
    var divs = document.querySelector('div');//获取div
    var index = 0,time = null;//下标从0开始,为了让每秒下标增加|减少,让下标对应的图片显示,其他图片隐藏;

给右边那妞点击事件

    you.onclick = function () {//右按钮点击事件
        index++; //图片要跟随下标增加,让下标对应的图片显示;
        if (index > imgs.length - 1) { //到最后一张图片,然后下标归为0
            index = 0 //下标归0
        }
        getauto()//排他思想调用
    }

左边按钮点击事件

    zuo.onclick = function () {//左边点击事件
  index--;//点击跟随下标减少,让下标对应的图片显示,其他图片隐藏;
        if (index < 0) {
            index = imgs.length - 1;//返回最后一张图片
        }
        getauto();//排他调用
    }

给定时器函数封装

function getrr() {
    index++; //图片要跟随下标增加,让下标对应的图片显示;
    if (index > imgs.length - 1) { //到最后一张图片,然后下标归为0
        index = 0 //下标归0
    }
    for (var i = 0; i < imgs.length; i++) {
        //排他思想
        imgs[i].classList.remove('active');//当前项移除
        ol_lis[i].classList.remove('sky');//li与图片相对应移除;
    }
    imgs[index].classList.add('active');//添加下一项
    ol_lis[index].classList.add('sky');//li与图片相对应增加
定时器,让他自己执行


    time = setInterval(getrr, 1000);//定时
    divs.onmouseover = function () {//鼠标划进去
        clearInterval(time);//清除定时器
        time = null;//将定时器赋空
    }
    divs.onmouseout = function () {//鼠标划出去
        time = setInterval(getrr, 1000);//定时器继续执行

    }


封装排他

    function getauto() {
      
        for (var i = 0; i < imgs.length; i++) {
            //排他思想
            imgs[i].classList.remove('active');//当前项移除
            ol_lis[i].classList.remove('sky');//li与图片相对应移除;
        }
        imgs[index].classList.add('active');//添加下一项
        ol_lis[index].classList.add('sky');//li与图片相对应增加

    }

点击图片导航让对应的图片显示出来

    for (var i = 0; i < ol_lis.length; i++) {
        getxia();//调用函数
    }

    function getxia() {//封装函数
        (function (ind) {
            ol_lis[ind].onclick = function () {//ol里每个li的点击事件
                for (var j = 0; j < ol_lis.length; j++) {
                    index = ind//将原点的下标和图片同步
                    //排他思想
                    imgs[j].classList.remove('active');
                    ol_lis[j].classList.remove('sky');
                }
                imgs[ind].classList.add('active');
                ol_lis[ind].classList.add('sky');
            }
        })(i)
    }

。。。大家可以试着尝试一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容