2012-10-29 270 views
0

我有一張基於圖像數組的圖像幻燈片,該圖像在我的頁面上提供一個img元素。當我到達最後一幅圖像並按下「下一個」觸發nextImage()函數時,我想隱藏我的最終圖像並調出一個啓動畫面(同一頁面上的一個div,被css隱藏)。這段代碼在safari中效果很好,但它似乎並沒有隱藏iPad(我的目標設備)上的圖像元素。我不知道什麼可能會導致這種行爲不起作用。.hide()在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(); 
     });   
    }    
} 

任何幫助將不勝感激,因爲這已經困擾了我幾個星期!

+0

我已確定,該問題是與在.show定時器()和隱藏( )。 它似乎iPad不喜歡動畫。 我會離開這個開放,因爲現在我有它的動畫會很好,爲了將來的參考,這是在iPad3上進行測試。 – FunkyMonk91

回答

0

而不是使用jquery隱藏元素,請嘗試將style="display:none"添加到HTML中的#image元素。這應該會讓jquery更容易切換圖像的可見性。

+1

這樣做只會在沒有任何動畫的情況下「隱藏」#image元素,這可能不是OP要查找的內容。 – rafaelbiten

0

我會嘗試的是簡單地使用iCount隱藏最後顯示的圖像在你的「if」語句中 - 回到你最後一個現有的圖像,之後我會,如果有必要,只需將.remove ();希望它有效!

因此,您檢查iCount是否爲空。如果是,iCount--隱藏(200)它,如有必要,在動畫結束後用#parent('#image')刪除#image。 (您可能需要仔細檢查語法)。

0

解決加入調用隱藏和顯示方法,當10毫秒超時:

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

在iPad 4測試