Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Jquery 无限幻灯片功能_Jquery_Html_Css - Fatal编程技术网

Jquery 无限幻灯片功能

Jquery 无限幻灯片功能,jquery,html,css,Jquery,Html,Css,我正在尝试使用jQuery创建一个基本的幻灯片,以便在将来的项目中使用。我已经对函数进行了排序,以便div(将是图像,但现在并不重要)在正确的时间淡入淡出。但是我不知道怎么重复 以下是我的jQuery: $(document).ready(function() { $(".slide").hide(); var $slideshow = function() { $("#one").fadeIn("slow").delay(5000).fadeOut("slow"

我正在尝试使用jQuery创建一个基本的幻灯片,以便在将来的项目中使用。我已经对函数进行了排序,以便div(将是图像,但现在并不重要)在正确的时间淡入淡出。但是我不知道怎么重复

以下是我的jQuery:

$(document).ready(function() {
    $(".slide").hide();
    var $slideshow = function() {
        $("#one").fadeIn("slow").delay(5000).fadeOut("slow");
        $("#two").delay(5000).fadeIn("slow").delay(5000).fadeOut("slow");
        $("#three").delay(10000).fadeIn("slow").delay(5000).fadeOut("slow");
        $("#four").delay(15000).fadeIn("slow").delay(5000).fadeOut("slow");
        $("#five").delay(20000).fadeIn("slow").delay(5000).fadeOut("slow");
    };
    $slideshow();
});
我已尝试添加$slideshow();在函数的末尾,但结果真的很糟糕;加载大约需要10秒钟,时间/顺序不正确

下面是一个JSFIDLE,使其更易于查看:


还有,这是最有效的方法吗?对于一个基本函数来说,似乎有很多代码。

在jquery中使用
eq
选择器

$(document).ready(function () {
    $(".slide").hide();
    var slideshow = function (val) {
        $(".slide:eq(" + val + ")").fadeIn("slow").delay(100).fadeOut("slow", function () {
         if ($(".slide").length - 1 > val) {
            slideshow(val + 1);
           }else{
             slideshow(0);
          }
        });


    }


    slideshow(0);
});

在jquery中使用
eq
选择器

$(document).ready(function () {
    $(".slide").hide();
    var slideshow = function (val) {
        $(".slide:eq(" + val + ")").fadeIn("slow").delay(100).fadeOut("slow", function () {
         if ($(".slide").length - 1 > val) {
            slideshow(val + 1);
           }else{
             slideshow(0);
          }
        });


    }


    slideshow(0);
});

这是一个无限版本,您可以将任意多张幻灯片放入指定的
slideconainer

$(document).ready(function () {
    $(".slide").hide();
    var duration = 500;
    var slideIterator = 0;
    var $slideshow = function (slideContainer) {
        if (slideIterator < $(slideContainer).children().length) {
            var slide = $($(slideContainer).children()[slideIterator]);
            slide.fadeIn("slow", function () {
                var that = this;
                setTimeout(function () {
                    $(that).fadeOut('slow', function () {
                        slideIterator++;
                        $slideshow(slideContainer);
                    });
                }, duration);
            });

        } else {
            slideIterator = 0;
            $slideshow(slideContainer);
        }
    }
    $slideshow('#slideshow');
});
$(文档).ready(函数(){
$(“.slide”).hide();
var持续时间=500;
var SlideInterator=0;
var$slideshow=函数(slideContainer){
if(SlideInterator<$(slideContainer.children().length){
var slide=$($(slideContainer.children()[SlideInterator]);
幻灯片。fadeIn(“慢”,函数(){
var=这个;
setTimeout(函数(){
.fadeOut('slow',function(){
SlideInterator++;
$slideshow(slideContainer);
});
},持续时间);
});
}否则{
滑块数=0;
$slideshow(slideContainer);
}
}
$slideshow(“#slideshow”);
});

演示:

这是一个无限版本,您可以在指定的
slideContainer中放入多少张幻灯片

$(document).ready(function () {
    $(".slide").hide();
    var duration = 500;
    var slideIterator = 0;
    var $slideshow = function (slideContainer) {
        if (slideIterator < $(slideContainer).children().length) {
            var slide = $($(slideContainer).children()[slideIterator]);
            slide.fadeIn("slow", function () {
                var that = this;
                setTimeout(function () {
                    $(that).fadeOut('slow', function () {
                        slideIterator++;
                        $slideshow(slideContainer);
                    });
                }, duration);
            });

        } else {
            slideIterator = 0;
            $slideshow(slideContainer);
        }
    }
    $slideshow('#slideshow');
});
$(文档).ready(函数(){
$(“.slide”).hide();
var持续时间=500;
var SlideInterator=0;
var$slideshow=函数(slideContainer){
if(SlideInterator<$(slideContainer.children().length){
var slide=$($(slideContainer.children()[SlideInterator]);
幻灯片。fadeIn(“慢”,函数(){
var=这个;
setTimeout(函数(){
.fadeOut('slow',function(){
SlideInterator++;
$slideshow(slideContainer);
});
},持续时间);
});
}否则{
滑块数=0;
$slideshow(slideContainer);
}
}
$slideshow(“#slideshow”);
});

演示:

这里有一个超级简单的例子,我使用setInterval。您还可以添加幻灯片,如果(n>5)5是最大幻灯片数,则只需更改
。它只是向上计数,当达到最大值时,会重置回1。这里有一个


这里有一个超级简单的例子,我使用setInterval。您还可以添加幻灯片,如果(n>5)
5是最大幻灯片数,则只需更改
。它只是向上计数,当达到最大值时,会重置回1。这里有一个


但在循环1圈后仍然会停止。。而且,在每次转换中,都会有一个没有显示任何内容的点。但在循环1次后仍然会停止。。而且,在每一次转变中,都会有一个点没有任何表现。非常接近完美,我不喜欢的一件事是,在每次转变中,都会有一个点没有任何表现。我认为我的工作方式可能会更好,一个消失,另一个消失,但除此之外,这是一个伟大的解决方案。+1@Hamish true!你的解决方案当然更整洁。非常接近完美,我不喜欢的一件事是,每次改变,都会有一点什么都没有表现出来。我认为我的工作方式可能会更好,一个消失,另一个消失,但除此之外,这是一个伟大的解决方案。+1@Hamish true!您的解决方案当然更整洁。TBH您正在尝试在某种程度上重新发明车轮。您肯定不是第一个想要并发明此功能的人。snook.ca/archives/javascript/simplest-jquery-slideshow simonbattersby.com/blog/simple-jquery-image-crossfade wowslider.com/rq/jquery-image-crossfade也许最好实现其他功能之一solutions@Rob-公平点,我想我已经太习惯于实现别人的想法了,但是没有学到太多东西(jQuery对我来说还是很新)。这就是为什么我试图为自己解决问题,一路学习,同时编写一些有用的代码供以后使用。TBH您试图在这里重新发明轮子。您肯定不是第一个想要并发明此功能的人。snook.ca/archives/javascript/simplest-jquery-slideshow simonbattersby.com/blog/simple-jquery-image-crossfade wowslider.com/rq/jquery-image-crossfade也许最好实现其他功能之一solutions@Rob-公平点,我想我已经太习惯于实现别人的想法了,但是没有学到太多东西(jQuery对我来说还是很新)。这就是为什么我试图自己解决问题,一路上学习一些东西,同时编写一些有用的代码供以后使用。这是一个简单的解决方案,但不太动态,因为您必须为每个人设置CSS,但因为这些图像可能具有不同的
src
属性,这不是太大的绑定。但是,必须为每个图像手动设置id。@Rob Schmuecker同意,这是一个简单的解决方案。虽然,在CSS方面,您可以将id命名为任何您想要的名称,并使用“数据集”。然后使用$('.slide').attr('data-set');调用每个幻灯片。至于在幻灯片中动态加载,您还可以设置use$.each或for循环来设置每个幻灯片,并使其在数据集中包含n。这只是一个需要构建的东西。我的观点是,如果您
拥有一个唯一的属性,请调用id
id
数据属性。同意这是一个需要+1构建的东西这是一个简单的解决方案,但是