javascript - jQuery - 在图像之间随机播放

标签 javascript jquery html css image

我正在尝试在模板中的 5 张图片 之间进行随机播放。目前,我在5 张图片 之间随机播放,然后随机显示其中一张

我的 HTML

<div class="lightbulb" id="bulb1">
  <img src="image-1.png" class="none" />
</div>
<div class="lightbulb" id="bulb2">
  <img src="image-2.png" class="none" />
</div>
<div class="lightbulb" id="bulb3">
  <img src="image-3.png" class="none" />
</div>
<div class="lightbulb" id="bulb4">
  <img src="image-4.png" class="none" />
</div>
<div class="lightbulb" id="bulb5">
  <img src="image-5.png" class="none" />
</div>

我的 CSS

.none {display:none;}

我的 JS

  $(document).ready(function () {
    get_random_bulb();
    function get_random_bulb() {
        var a = (parseInt(Math.random() * 4));
        $(".lightbulb img.block").removeClass("block").addClass("none");
        $(".lightbulb:eq(" + a + ") img").removeClass("none").addClass("block");
    }
    var rand = Math.round(Math.random() * (3500 - 500)) + 500;
    setInterval(function () {
        get_random_bulb();
    }, rand);
  });

这很好用,因为它随机选择一张图像并显示它,但我想要一个更有风格和更好的随机播放。如下图所示:

enter image description here

在显示最后 3 张图像的地方,当随机选择新图像时,它会转到列表的末尾,而第一个图像会消失。

我希望我已经解释清楚了我的意思

最佳答案

我想出了这个:https://jsfiddle.net/mehmetb/brbj8db6/

HTML

<div class="lightbulb" id="bulb1">
  <img class="shuffle-image" />
</div>

<div class="lightbulb" id="bulb2">
  <img class="shuffle-image" />
</div>

<div class="lightbulb" id="bulb3">
  <img class="shuffle-image" />
</div>

CSS

.shuffle-image {
  border-radius: 50%;
}

JavaScript

var shuffleList = [
  'https://dummyimage.com/90x90/ccc/000000.jpg&text=1',
  'https://dummyimage.com/90x90/ccc/000000.jpg&text=2',
  'https://dummyimage.com/90x90/ccc/000000.jpg&text=3',
  'https://dummyimage.com/90x90/ccc/000000.jpg&text=4',
  'https://dummyimage.com/90x90/ccc/000000.jpg&text=5'
];

var $lightBulbs = $(".lightbulb");

function shuffle() {
  var rand = Math.round(Math.random() * (3500 - 500)) + 500;

  for(var i=0;i<$lightBulbs.length;++i) {
    var $img = $lightBulbs.eq(i).children('img');

    $img.attr('src', shuffleList[i]);
  }

  //Put the first array element to the last
  shuffleList.push(shuffleList.shift());

 //Each call will set a random delay between shuffles
 setTimeout(function() {
   shuffle();
 }, rand);
}

shuffle();

关于javascript - jQuery - 在图像之间随机播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40957844/

相关文章:

javascript - Bootstrap-datetimepicker 添加天数

javascript - JQuery 选择器按值选择下拉列表

php - 改进 PHP 数组以在 AJAX 上使用

jquery - html表格中每行的最后一个td

javascript - 使用 ng-click 更改 ng-repeat 循环中的值

jquery - 我们可以使用 JQuery 检查跨浏览器支持的闪烁属性吗

javascript - 砌体无法加载...元素不会重新对齐,直到我调整窗口大小

html - 如何让一些复选框看起来好像被禁用了

html - Swift 从 URL 获取 HTML

javascript - react-native - 作为参数调用函数