Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我想使用jquery创建具有无限循环的图像库_Javascript_Jquery_Html - Fatal编程技术网

Javascript 我想使用jquery创建具有无限循环的图像库

Javascript 我想使用jquery创建具有无限循环的图像库,javascript,jquery,html,Javascript,Jquery,Html,我想创建一个图像库,我写了一个幻灯片,但我不知道如何为上一个和下一个按钮编码。这些应该像一个无限循环一样工作(最后一个图像跳回到第一个) 我应该如何开始?这就是我到目前为止所做的: <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript">

我想创建一个图像库,我写了一个幻灯片,但我不知道如何为上一个和下一个按钮编码。这些应该像一个无限循环一样工作(最后一个图像跳回到第一个)

我应该如何开始?这就是我到目前为止所做的:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
    $("#play").click(function () {
        $("#img1").fadeOut(2000);
        $("#img2").fadeIn();
        $("#img2").fadeOut(4000);
        $("#img3").fadeIn();
    });
});
</script>
<body>
<div id=outer>
    <div id=inner>
        <img id="img1" src="img1.jpg"/>
        <img id="img2" src="img2.jpg" style="display:none"/>
        <img id="img3" src="img3.jpg" style="display:none"/>
    </div>
    <div id=button>
        <button id="bwd"><<</button>
        <button id="play"><></button>
        <button id="fwd">>></button>
    </div>
</div>
</body>

$(文档).ready(函数(){
$(“#播放”)。单击(函数(){
美元(“#img1”)。淡出(2000年);
$(“#img2”).fadeIn();
美元(“#img2”)。淡出(4000);
$(“#img3”).fadeIn();
});
});

您需要使用javascript计时功能。比如:

$('#play').click(function(){
  window.setInterval(function(){
    if($('#img1').is(:visible)){
      $("#img2").show()
      $("#img1").hide()
    }
    if($('#img2').is(:visible)){
      $('#img3').show()
      $('#img2').hide()
    }
    if($('#img3').is(:visible)){
      $('#img1').show()
      $('#img3').hide()
    }
  }, 1000);
});
你也可以把这个逻辑浓缩下来,但这就得到了基本的想法。然后,如果仔细查看next的函数,它已经在代码中,可以提取出来并重用。一旦你有了下一个函数,后面的函数就完全相反了

要回答下面的问题,您可以将img更改为具有相同的类,然后根据可见的类和紧接可见的图像应用显示和隐藏:

#find the one currently being shown
$(".images:visible")

#find the one after the visible one
$(".images:visible").next()

#keep an id on the last image so that you can do something like
if($('.images:visible') == $('#last_image')){
    $('.images').first().show()
}

您可以使用setInterval()。 此链接可以帮助您了解更多信息

也许这对你也有帮助:


您好,我创建了旋转木马,没有使用任何第三方插件。如果您需要,请参阅

Js代码是

 $(document).ready(function () {
    var currentPosition = 0;
    var slideWidth = 300;
    var slides = $('.slide');
    var numberOfSlides = slides.length;
    var timer = 3000;
    var img1, img2;
    var sliderLink = $("#slider a");
    var direction = 1;
    // Remove scrollbar in JS
    $('#slidesContainer').css('overflow', 'hidden');

    // Wrap all .slides with #slideInner // Float left to display horizontally, readjust .slides width
    slides.wrapAll('<div id="slideInner"></div>').css({
        'float': 'left',
        'width': slideWidth
    });

    // Set #slideInner width equal to total width of all slides
    $('#slideInner').css('width', slideWidth * numberOfSlides);

    // Insert left and right arrow controls in the DOM
    $('#slideshow').prepend('<span class="control" id="leftControl">Move left</span>').append('<span class="control" id="rightControl">Move right</span>');

    // Hide left arrow control on first load
    // manageControls(currentPosition);
    // manageSlide();
    // Create event listeners for .controls clicks
    $('#rightControl').bind('click', rightControl);
    $('#leftControl').bind('click', leftControl);
    function leftControl() {
        var butonid = 0;
        direction = 0;
        $("#slideInner").stop();
        $("#slideInner").dequeue();
        $('#timer').stop();
        $('#timer').dequeue();
        $('#leftControl').unbind('click');

        manageSlide(0, direction);
        setTimeout(function () {

            $('#leftControl').bind('click', leftControl);
        }, timer, null);


    }
    function rightControl() {
        var butonid = 1;
        direction = 1;
        $("#slideInner").stop();
        $("#slideInner").dequeue();
        $('#timer').stop();
        $('#timer').dequeue();
        $('#rightControl').unbind('click');

        manageSlide(0, direction);
        setTimeout(function () {

            $('#rightControl').bind('click', rightControl);
        }, timer, null);

    }

    var slideIndex = 0;
    var data = $("#slideInner .slide").toArray();
    $("#slideInner").empty();
    function manageSlide(auto, idButtonid) {

        $("#slideInner").empty();


        // console.log(slideIndex);

        if (idButtonid == 0) {

            $("#slideInner").css({ 'marginLeft': "-300px" });
            $(data).each(function (index) {
                //                        if (index == slideIndex - 1) {
                //                            $(this).show();
                //                        } else {
                $(this).hide();
                // }
            });
            $(data[slideIndex - 1]).show();
            if (slideIndex == numberOfSlides - 1) {
                slideIndex = 0;
                img1 = data[0];
                img2 = data[numberOfSlides - 1];

                $("#slideInner").append(img1);
                $("#slideInner").append(img2);
                $(img2).show();
                $(img1).show();

            } else {
                img1 = data[slideIndex];
                img2 = data[slideIndex + 1];
                $("#slideInner").append(img2);
                $("#slideInner").append(img1);

                $(img1).show();
                $(img2).show();
                slideIndex = slideIndex + 1;
            }



            $('#slideInner').animate({
                'marginLeft': "0px"
            }, 'slow', function () {
                $('#timer').animate({
                    opacity: 1
                }, timer, function () {
                    console.log('leftControl');
                    manageSlide(1, direction);
                });

            });
        }

        // right move here
        else if (idButtonid == 1) {
            $("#slideInner").css({ 'marginLeft': "0px" });
            $(data).each(function (index) {
                if (index == slideIndex + 1) {
                    $(this).show();
                } else {
                    $(this).hide();
                }
            });
            if (slideIndex == numberOfSlides - 1) {
                slideIndex = 0;
                img1 = data[0];
                img2 = data[numberOfSlides - 1];
                $("#slideInner").append(img2);
                $("#slideInner").append(img1);
                $(img2).show();
                $(img1).show();

            } else {
                img1 = data[slideIndex];
                img2 = data[slideIndex + 1];
                $("#slideInner").append(img1);
                $("#slideInner").append(img2);
                $(img1).show();
                $(img2).show();
                slideIndex = slideIndex + 1;
            }

            $('#slideInner').animate({
                'marginLeft': slideWidth * (-1)
            }, 'slow', function () {
                console.log('rightControl');
                $('#timer').animate({
                    opacity: 1
                }, timer, function () {
                    manageSlide(1, direction);
                });

            });
        }


        if (auto == 1) {


            sliderLink.each(function () {
                $(this).removeClass();
                if ($(this).text() == (slideIndex + 1)) {

                    $(this).addClass('active');
                }

            });
        }
        auto = 1;

    }



    $("#slider a").click(function () {

        sliderLink.each(function () {
            $(this).removeClass();
        });
        slideIndex = $(this).addClass('active').text() - 1;
        $('#timer').stop();
        $('#timer').dequeue();
        $("#slideInner").stop();
        $("#slideInner").dequeue();
        manageSlide(0, direction);
    });

    manageSlide(1, direction);
});
$(文档).ready(函数(){
var currentPosition=0;
var slideWidth=300;
变量幻灯片=$('.slide');
var numberOfSlides=slides.length;
无功定时器=3000;
var-img1,img2;
var sliderLink=$(“#滑块a”);
var方向=1;
//删除JS中的滚动条
$('slidecontainer').css('overflow','hidden');
//用#slideInner//向左浮动以水平显示所有幻灯片,重新调整幻灯片宽度
slides.wrapAll(“”).css({
‘float’:‘left’,
“宽度”:滑动宽度
});
//将#幻灯片内部宽度设置为所有幻灯片的总宽度
$('slideInner').css('width',slideWidth*numberOfSlides);
//在DOM中插入左右箭头控件
$(“#幻灯片放映”)。前置('Move left')。追加('Move right');
//第一次加载时隐藏左箭头控件
//管理控制(当前职位);
//管理幻灯片();
//为控件创建事件侦听器。单击
$('#rightControl').bind('click',rightControl');
$('#leftControl').bind('click',leftControl');
函数leftControl(){
var butonid=0;
方向=0;
$(“#slideInner”).stop();
$(“#slideInner”).dequeue();
$(“#计时器”).stop();
$(“#计时器”).dequeue();
$('#leftControl')。取消绑定('单击');
管理幻灯片(0,方向);
setTimeout(函数(){
$('#leftControl').bind('click',leftControl');
},计时器,空);
}
函数rightControl(){
var butonid=1;
方向=1;
$(“#slideInner”).stop();
$(“#slideInner”).dequeue();
$(“#计时器”).stop();
$(“#计时器”).dequeue();
$('#rightControl')。解除绑定('click');
管理幻灯片(0,方向);
setTimeout(函数(){
$('#rightControl').bind('click',rightControl');
},计时器,空);
}
var slideIndex=0;
var data=$(“#slideInner.slide”).toArray();
$(“#slideInner”).empty();
函数管理幻灯片(自动,idButtonid){
$(“#slideInner”).empty();
//console.log(slideIndex);
如果(idButtonid==0){
$(“#slideInner”).css({'marginLeft':“-300px});
$(数据)。每个(函数(索引){
//如果(索引==滑动索引-1){
//$(this.show();
//}其他{
$(this.hide();
// }
});
$(数据[slideIndex-1]).show();
如果(slideIndex==numberOfSlides-1){
slideIndex=0;
img1=数据[0];
img2=数据[numberOfSlides-1];
$(“#slideInner”).append(img1);
$(“#slideInner”).append(img2);
$(img2.show();
$(img1.show();
}否则{
img1=数据[滑动索引];
img2=数据[slideIndex+1];
$(“#slideInner”).append(img2);
$(“#slideInner”).append(img1);
$(img1.show();
$(img2.show();
slideIndex=slideIndex+1;
}
$('slideInner')。设置动画({
“marginLeft”:“0px”
},“慢”,函数(){
$(“#计时器”)。设置动画({
不透明度:1
},计时器,函数(){
log('leftControl');
管理幻灯片(1,方向);
});
});
}
//右移
else if(idButtonid==1){
$(“#slideInner”).css({'marginLeft':“0px”});
$(数据)。每个(函数(索引){
如果(索引==滑动索引+1){
$(this.show();
}否则{
$(this.hide();
}
});
如果(slideIndex==numberOfSlides-1){
slideIndex=0;
img1=数据[0];
img2=数据[numberOfSlides-1];
$(“#slideInner”).append(img2);
$(“#slideInner”).append(img1);
$(img2.show();
$(img1.show();
}否则{
img1=数据[滑动索引];
img2=数据[slideIndex+1];
$(“#slideInner”).append(img1);
$(“#slideInner”).append(img2);
$(img1.show();
$(img2.show();
slideIndex=slideIndex+1;
}
$('#slideInn