在jq轮播图的基础加上自动轮播逻辑

<script type="text/javascript">
        $(document).ready(function () {
            var blw = $("#myscrollbox li").width();
            var liArr = $("#myscrollbox ul").children("li");
            var mysw = $("#myscroll").width();
            var mus = parseInt(mysw / blw);
            var length = liArr.length - mus;
            var i = 0
            $("#right").click(function () {
                i++
                if (i < length) {
                    $("#myscrollbox").css("left", -(blw * i));
                } else {
                    i = length;
                    $("#myscrollbox").css("left", -(blw * length));
                }
            });
            $("#left").click(function () {
                i--
                if (i >= 0) {
                    $("#myscrollbox").css("left", -(blw * i));
                } else {
                    i = 0;
                    $("#myscrollbox").css("left", 0);

                }
            });
        });
    </script>
<div class="scrollpic">
                <div id="mybtns">
                    <a href="javascript:;" id="left"></a>
                    <a href="javascript:;" id="right"></a>
                </div>
                <div id="myscroll">
                    <div id="myscrollbox">
                        <ul>
                            <li><a href="javascript:;"><img src="img/home1.png" width="200" height="161"><span class="intro">
                                        <p>111111111111123323131232131</p>
                                    </span></a></li>
                            <li><a href="javascript:;"><img src="img/home2.png" width="200" height="161"><span class="intro">
                                        <p>11111111111111111.</p>
                                    </span></a></li>
                            <li><a href="javascript:;"><img src="img/home3.png" width="200" height="161"><span class="intro">
                                        <p>111111111111111111111111...</p>
                                    </span></a></li>
                            <li><a href="javascript:;"><img src="img/home1.png" width="200" height="161"><span class="intro">
                                        <p>111111111111111111...</p>
                                    </span></a></li>
                            <li><a href="javascript:;"><img src="img/home5.png" width="200" height="161"><span class="intro">
                                        <p>111111111111111111..</p>
                                    </span></a></li>
                            <li><a href="javascript:;"><img src="img/home6.png" width="200" height="161"><span class="intro">
                                        <p>1111111111111111...</p>
                                    </span></a></li>
                        </ul>
                    </div>
                </div>
            </div>

样式是这样的

.scrollpic {
    max-width: 1052px;
    max-height: 161px;
    margin: 0 auto;
}
#myscroll {
    background-color: white;
    bottom: 22px;
    display: block;
    width: 100%;
    position: relative;
    height: 161px;
    overflow: hidden;
}
#myscroll #myscrollbox {
    display: block;
    float: left;
    position: absolute;
    left: 0;
    top: 0;
    width: 1000000px;
}
#myscroll ul {
    display: block;
    float: left;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

#myscroll ul li {
    display: block;
    float: left;
    padding: 0;
    margin: 0;
}
#myscroll ul li a {
    display: block;
    float: left;
    width: 200px;
    padding-right:13px;
    position: relative;
    height: 161px;
    color: #333;
}

#myscroll a .intro {
    position: absolute;
    left: 0;
    z-index: 10;
    background-color: rgba(255, 255, 255, .80);
    /* padding: 0 10px; */
}
#myscroll a .intro p {
    /* display: flex; */
    text-align: center;
    background-color: #ff6700;
    color: white;
    margin: auto;
    width: 200px;
    font-size: 13px;
    line-height: 30px;
    height: 30px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
#myscroll a .intro {
    bottom: -61px;
}

#myscroll a:hover .intro {
    bottom: 0px;
}

#mybtns {
    position: relative;
    top: 44%;
    /* margin: 10px; */
    width: 100%;
    display: block;
    z-index: 10;
}
#mybtns #left{
    width: 15px;
    height: 22px;
    display: block;
    float: left;
}
#mybtns #right{
    width: 15px;
    height: 22px;
    display: block;
    float: right;
}
#mybtns a:hover {
    /* background-color: #d7000f; */
}
#mybtns a:hover,
#myscroll,
#mybtns a,
#myscroll a:hover .intro,
#myscroll a .intro,
#myscroll #myscrollbox {
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}
#mybtns #left {
    background-image: url(../img/left.png);
}

#mybtns #right {
    background-image: url(../img/right.png);
}

@media(min-width:1052px) {
    .scrollpic {
        max-width: 1052px;
        width: 100%;
    }

    #myscroll {
        width: 1052px;
        font-size: 0px;
    }
}

@media(max-width:1052px) {
    .scrollpic {
        max-width: 1052px;
        width: 100%;
    }

    #myscroll {
        width: 1052px;
        height: 161px;
    }
}

@media(max-width:1052px) {
    .scrollpic {
        max-width: 1052px;
        width: 100%;
    }

    #myscroll {
        width: 1052px;
    }
}

@media(max-width:1052px) {
    .scrollpic {
        max-width: 786px;
        width: 100%;
    }

    #myscroll {
        width: 786px;
    }
}
@media(max-width:767px) {
    .scrollpic {
        max-width: 524px;
        width: 100%;
    }

    #myscroll {
        width: 524px;
    }
}

@media(max-width:523px) {
    .scrollpic {
        max-width: 262px;
        width: 100%;
    }

    #myscroll {
        width: 200px;
    }
}

clipboard.png

这样只能实现左右轮播,但是不能自动轮播,求大佬教我一下如何在这基础上加上自动轮播的效果!

阅读 1.5k
2 个回答
setInterval(function(){
    i++
    if (i < length) {
        $("#myscrollbox").css("left", -(blw * i));
    }else if(i > length){
        i = 0;
        $("#myscrollbox").css("left", 0);
    }else {
        i = length;
        $("#myscrollbox").css("left", -(blw * length));
    }
},2000)

i=4 的判断

<script type="text/javascript">
    $(document).ready(function () {
        var blw = $("#myscrollbox li").width();
        var liArr = $("#myscrollbox ul").children("li");
        var mysw = $("#myscroll").width();
        var mus = parseInt(mysw / blw);
        var length = liArr.length - mus;
        var i = 4;
        $("#right").click(function () {
          if (i<liArr.length-1) {
            i++;
            $("#myscrollbox").css("left", -(blw*(i-4)));
          }else {
            i = 4;
            $("#myscrollbox").css("left", 0);
          }
        });
        $("#left").click(function () {
            if (i>4) {
              i--;
              $("#myscrollbox").css("left", -(blw*(i-4)));
            }else {
              i = 4;
              $("#myscrollbox").css("left", 0);
            }
        });
        setInterval(function(){
          if (i<liArr.length-1) {
            i++;
            $("#myscrollbox").css("left", -(blw*(i-4)));
          }else {
            i = 4;
            $("#myscrollbox").css("left", 0);
          }
        },2000)
    });
</script>

i=0 的判断

$(document).ready(function () {
    var blw = $("#myscrollbox li").width();
    var liArr = $("#myscrollbox ul").children("li");
    var mysw = $("#myscroll").width();
    var mus = parseInt(mysw / blw);
    var length = liArr.length - mus;
    var i = 0;
    var overflow = liArr.length-5;
    var maxi = overflow;
    console.log(overflow,maxi);
    $("#right").click(function () {
        if (i<maxi) {
          i++;
          $("#myscrollbox").css("left", -(blw *i));
        }else {
          i = 0;
          $("#myscrollbox").css("left",0);
        }
    });
    $("#left").click(function () {
        if (i>0) {
          i--;
          $("#myscrollbox").css("left", -(blw *i));
        }else {
          i = 0;
          $("#myscrollbox").css("left",0);
        }
    });
    setInterval(function(){
      if (i<maxi) {
        i++;
        $("#myscrollbox").css("left", -(blw *i));
      }else {
        i = 0;
        $("#myscrollbox").css("left",0);
      }
    },2000)
});

加个setInterval执行$(right).trigger('click'), 然后在点击事件里面clearInterval, 加个setTimeout, 轮播执行完之后继续注册setInterval

推荐问题