0

我有一个基于图像数组的图像幻灯片放映,这些图像在我的页面上提供单个 img 元素。当我到达最后一张图像并按下触发 nextImage() 函数的“下一个”时,我想隐藏我的最终图像并调出启动画面(同一页面上的 div,由 css 隐藏)。这段代码在 safari 中效果很好,但它似乎没有隐藏 iPad(我的目标设备)上的图像元素。我不知道是什么导致这不起作用。

function endPresentation(){
    $("#image").hide(200);
    $("#test").show(200);
}

//Goto Next image in array
function nextImage(){

    save();
    iCount++;

//If there are no more images in the array
    if (images[iCount] == null) {
        endPresentation();
    }
    else{                       
        //Change image source to new image, do stuff after the image has successfully loaded
        $("#image").attr("src", images[iCount]).load(function (){               
            doStuff();  
        });         
    }               
}

任何帮助将不胜感激,因为这已经困扰我好几个星期了!

4

3 回答 3

0

不要使用 jquery 隐藏元素,而是尝试添加style="display:none"#imagehtml 中的元素。这应该使 jquery 更容易切换图像的可见性。

于 2012-10-29T19:23:03.687 回答
0

我会尝试使用 iCount 简单地将最后显示的图像隐藏在“if”语句中 - 以返回到最后一个现有图像,然后,如有必要,我只需使用 .remove(); 删除 div;希望它有效!

因此,您检查 iCount 是否为空。如果是,iCount--,隐藏(200)它,如果有必要,你在动画结束后用 .parent('#image') 删除#image。(您可能需要仔细检查语法)。

于 2012-10-29T19:26:54.870 回答
0

解决了在调用 hide 和 show 方法时添加 10 ms 超时的问题:

function endPresentation(){
  setTimeout(function(){
      $("#image").hide(200);
      $("#test").show(200);
  },10)
}

在 iPad 4 上测试

于 2013-08-06T14:58:28.703 回答