【问题标题】:Ease transition between images in JavaScript slideshow在 JavaScript 幻灯片中的图像之间轻松转换
【发布时间】:2016-04-07 11:55:55
【问题描述】:

我正在使用 JavaScript 以定时间隔随机显示一组图像。

这是脚本:

var NumberOfImages = 5

var img = new Array(NumberOfImages)

    img[0] = "[image here]"
    img[1] = "[image here]"
    img[2] = "[image here]"
    img[3] = "[image here]"
    img[4] = "[image here]"

Array.prototype.shuffle = function () {
    var len = this.length;
    var i = len;
    while (i--) {
        var p = parseInt(Math.random()*len);
        var t = this[i];
    this[i] = this[p];
    this[p] = t;
    }
};

img.shuffle ();

var imgNumber = 0

function NextImage() {
    document.images["VCRImage"].src = img[imgNumber++]

        if (imgNumber == img.length) {
               img.shuffle ();
               imgNumber = 0;
        }
}

window.setInterval (NextImage, 3000);

和html:

<div class="item">
    <script type="text/javascript">document.writeln('<img src="'+img[0]+'" name="VCRImage">');</script>
</div>

可以在此处找到一个工作示例:https://jsfiddle.net/admiringtheorchid/esm3u0xg/

我想简化每个图像之间的过渡。这如何实现?

【问题讨论】:

  • 网上有很多很容易找到的资源,可以为您提供如何做到这一点的想法。在这里提问之前,您至少应该完成一些基础研究
  • 我应该补充一点,在将我的问题发布到论坛之前,我已经进行了数小时的研究。事实上,我找到了许多解决方案,但没有一个能够成功实施。

标签: javascript jquery css css-transitions slideshow


【解决方案1】:

用 jQuery 试试这个方法:https://jsfiddle.net/joe_young/qxf69hsL/

//create a jQuery object of the image
    var $image = $(document.images["VCRImage"]);

//fade out the image, and once it has finished fading out... 
    $image.fadeOut(function() {  

//change the image source
        $image.attr("src", img[imgNumber++]);                    
    });

//fade the image back in
    $image.fadeIn();                                              

【讨论】:

  • 我很欣赏您的建议的简单性,但是,您的 jsfiddle 似乎不起作用。我应该将您的代码添加到函数“NextImage”中,替换它还是包含在下面?
  • 很抱歉,我忘了更新我的 jsfiddle,现在看@DBenway
  • 谢谢@joe_young。这几乎可以工作,但重复数组中的第一个图像。我不知道为什么。
  • 好的,我已经修复了我的小提琴中的那个位,如果这不是所需的行为,请告诉我@DBenway
  • 问题解决了@joe_young,尽管出现了一个新问题。如果我在选项卡中打开页面并在其他内容上工作一段时间,当我回来时,会一遍又一遍地加载单个图像。此外,有时图像的加载在淡入时是可见的。如何避免这种情况以实现无缝过渡?
猜你喜欢
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 2016-12-13
  • 2020-07-27
  • 1970-01-01
相关资源
最近更新 更多