繁体   English   中英

JS InfiniteRotator随机顺序

[英]JS InfiniteRotator Random Order

我的网站上有一个图像旋转器,但是我希望图像以随机顺序出现,这样一来,相同的图像并不总是首当其冲。 我有旋转器,但是我不知道如何将其随机化。 我的代码在JS Bin上: http : //jsbin.com/dogimawuli/edit?html,输出

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Test</title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js?ver=3.0.1"></script>
  <script>
  $(window).load(function() {   

    var InfiniteRotator = 
  {
    init: function()
    {
        //initial fade-in time (in milliseconds)
        var initialFadeIn = 1000;

        //interval between items (in milliseconds)
        var itemInterval = 4000;

        //cross-fade time (in milliseconds)
        var fadeTime = 50;

        //count number of items
        var numberOfItems = $('.rotating-item').length;

        //set current item
        var currentItem = 0;

        //show first item
        $('.rotating-item').eq(currentItem).fadeIn(initialFadeIn);

        //loop through the items        
        var infiniteLoop = setInterval(function(){
            $('.rotating-item').eq(currentItem).fadeOut(fadeTime);

            if(currentItem == numberOfItems -1){
                currentItem = 0;
            }else{
                currentItem++;
            }
            $('.rotating-item').eq(currentItem).fadeIn(fadeTime);

        }, itemInterval);   
     }  
  };

  InfiniteRotator.init();

});
  </script>
  <style>
    #rotating-item-wrapper {position: relative;width: 468px;height: 60px;float: right;}
    .rotating-item {display: none;position: absolute;top: 0;left: 0;}
  </style>
</head>
<body>
    <div id="rotating-item-wrapper">
      <div style="width:400px;height:60px;background:red;"class="rotating-item">1</div>
      <div style="width:400px;height:60px;background:green;"class="rotating-item">2</div>
      <div style="width:400px;height:60px;background:blue;"class="rotating-item">3</div>
   </div>
</body>
</html>

尝试这个:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Test</title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js?ver=3.0.1"></script>
  <script>
  $(window).load(function() {   
      debugger;
    var InfiniteRotator = 
  {
    init: function()
    {
        //initial fade-in time (in milliseconds)
        var initialFadeIn = 1000;

        //interval between items (in milliseconds)
        var itemInterval = 4000;

        //cross-fade time (in milliseconds)
        var fadeTime = 50;

        //count number of items
        var numberOfItems = $('.rotating-item').length;

        //set current item
        var currentItem = Math.floor(Math.random() * numberOfItems)


        //show first item
        $('.rotating-item').eq(currentItem).fadeIn(initialFadeIn);

        //loop through the items        
        var infiniteLoop = setInterval(function(){
            $('.rotating-item').eq(currentItem).fadeOut(fadeTime);

            nextItem = currentItem;
            while(currentItem == nextItem) {
                nextItem = Math.floor(Math.random() * numberOfItems);
            }
            currentItem = nextItem;
            $('.rotating-item').eq(currentItem).fadeIn(fadeTime);

        }, itemInterval);   
     }  
  };

  InfiniteRotator.init();

});
  </script>
  <style>
    #rotating-item-wrapper {position: relative;width: 468px;height: 60px;float: right;}
    .rotating-item {display: none;position: absolute;top: 0;left: 0;}
  </style>
</head>
<body>
    <div id="rotating-item-wrapper">
      <div style="width:400px;height:60px;background:red;"class="rotating-item">1</div>
      <div style="width:400px;height:60px;background:green;"class="rotating-item">2</div>
      <div style="width:400px;height:60px;background:blue;"class="rotating-item">3</div>
   </div>
</body>
</html>

基本上,您正在遍历与当前图像不同的下一个随机数,缺点是某些图像将被“饿死”,直到随机数选择该图像数为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM