Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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_Javascript_Html - Fatal编程技术网

JQuery在列表中一次显示/隐藏一个图像

JQuery在列表中一次显示/隐藏一个图像,jquery,javascript,html,Jquery,Javascript,Html,我有一个横幅图像列表 <ul id="banners"> <li><img src="image1.png" /></li> <li><img src="image2.png" /></li> <li><img src="image3.png" /></li> </ul> 使用,如何让它们每隔几秒钟一次显示一个?我想您可以使用j

我有一个横幅图像列表

<ul id="banners">
    <li><img src="image1.png" /></li>
    <li><img src="image2.png" /></li>
    <li><img src="image3.png" /></li>
</ul>

使用,如何让它们每隔几秒钟一次显示一个?

我想您可以使用jquery的隐藏和显示方法。如果你想得到幻想,你可以做动画,像fadein或fadeout。我相信这种改变需要使用的不是jquery,而是纯javascript。我不确定jquery是否有一个更短的方法,但我肯定你可以用javascript实现它。您可能会考虑使用javascripts计时工具,以及一些分支来显示和隐藏不同的图像,这可能需要将“活动图像”之类的特殊类应用于您正在显示的图像。从您的销售代表的角度来看,您可能在总体上更有知识,但我希望能有所帮助。

我认为您可以使用jquery的隐藏和显示方法。如果你想得到幻想,你可以做动画,像fadein或fadeout。我相信这种改变需要使用的不是jquery,而是纯javascript。我不确定jquery是否有一个更短的方法,但我肯定你可以用javascript实现它。您可能会考虑使用javascripts计时工具,以及一些分支来显示和隐藏不同的图像,这可能需要将“活动图像”之类的特殊类应用于您正在显示的图像。从您的销售代表的角度来看,您可能在总体上更有知识,但我希望能有所帮助。

这里有一个以1.5秒为间隔随机更改图像的示例:

Html:

Javascript:

(function() {
    var lis = document.querySelectorAll('#banners > li');

    var hideAllImages = function() {
        for(var i=0; i<lis.length; i++) {
            lis[i].setAttribute('style', 'display: none');
        }
    }

    var showImage = function(index) {
        lis[index].setAttribute('style', 'display: block');
    }

    var showRandomImage = function() {
        var index = Math.floor(Math.random() * lis.length);
        hideAllImages();
        showImage(index);
    }

    showRandomImage();

    setInterval(showRandomImage, 1500);

})();
(函数(){
var lis=document.queryselectoral(“#banners>li”);
var hideAllImages=函数(){

对于(var i=0;i,这里有一个以1.5秒为间隔随机更改图像的示例:

Html:

Javascript:

(function() {
    var lis = document.querySelectorAll('#banners > li');

    var hideAllImages = function() {
        for(var i=0; i<lis.length; i++) {
            lis[i].setAttribute('style', 'display: none');
        }
    }

    var showImage = function(index) {
        lis[index].setAttribute('style', 'display: block');
    }

    var showRandomImage = function() {
        var index = Math.floor(Math.random() * lis.length);
        hideAllImages();
        showImage(index);
    }

    showRandomImage();

    setInterval(showRandomImage, 1500);

})();
(函数(){
var lis=document.queryselectoral(“#banners>li”);
var hideAllImages=函数(){

对于(var i=0;i,这里有一个小函数,它将每1s切换每个子元素的可见性

#banners li {
    display: none;
}

我已经删除了这些图像,因为我只是在这里提供一个可视化演示-切换
  • 元素

    -简化演示


    要循环此过程,请观察以下内容,
    时间
    是我们希望显示每个元素的时间

    var time = 1000; // 1s
    
    function toggle() {
        $('#banners li').each(function(index, value) {
            setTimeout(function() {
                $(value).show().siblings().hide();
             }, time * (index + 1));
        });
    }
    
    toggle();
    
    setInterval(toggle, $('#banners li').length * time);
    

    -演示用
    setInterval

    包装,这里有一个小函数,它将切换每个子元素的可见性
  • 元素-一次一个-每1s

    #banners li {
        display: none;
    }
    

    我已经删除了这些图像,因为我只是在这里提供一个可视化演示-切换
  • 元素

    -简化演示


    要循环此过程,请观察以下内容,
    时间
    是我们希望显示每个元素的时间

    var time = 1000; // 1s
    
    function toggle() {
        $('#banners li').each(function(index, value) {
            setTimeout(function() {
                $(value).show().siblings().hide();
             }, time * (index + 1));
        });
    }
    
    toggle();
    
    setInterval(toggle, $('#banners li').length * time);
    

    -使用
    setInterval

    包装的演示将无限期地在图像中循环。这样,它就不会在第三个图像之后结束

    $(function(){
      setInterval(function(){
        var $el = $(".s");
        $el.removeClass("s")
           .next("li")
           .addClass("s")
           .closest("ul")
           .append($el);
      },500);
    });
    

    如果是这样的想法,这样的东西将无限期地在图像中循环。这样它就不会在第三张图像之后结束

    $(function(){
      setInterval(function(){
        var $el = $(".s");
        $el.removeClass("s")
           .next("li")
           .addClass("s")
           .closest("ul")
           .append($el);
      },500);
    });
    

    尝试利用
    .toggle()
    ,递归调用
    complete
    回调(如果存在下一个元素),否则先调用父元素
    complete
    回调
    li
    子元素

    $(“#bannars li:first”)。切换(3000,功能幻灯片(){
    $(this).toggle(3000,function(){
    $(this.nextElementSibling | | this.parentElement.firstElementChild)
    .切换(3000,滑动)
    })
    })
    #横幅李{
    显示:无;
    列表样式:无;
    }
    
    

    尝试使用
    .toggle()
    ,递归调用
    complete
    回调(如果下一个元素存在),否则首先调用父元素上的
    complete
    回调
    li
    子元素

    $(“#bannars li:first”)。切换(3000,功能幻灯片(){
    $(this).toggle(3000,function(){
    $(this.nextElementSibling | | this.parentElement.firstElementChild)
    .切换(3000,滑动)
    })
    })
    #横幅李{
    显示:无;
    列表样式:无;
    }
    
    

    当你试图自己解决这个问题时,你在哪里陷入困境?这叫做幻灯片,有数千个插件可用,jQuery循环浮现在脑海中。当你试图自己解决这个问题时,你在哪里陷入困境?这叫做幻灯片,有数千个插件可用,jQuery循环浮现在脑海中。