2015-11-04 65 views
0

我有一個I幀,其源極改變每5秒:如何添加淡入()方法爲每個對象在陣列

$(window).load(function() { 
 
    if (typeof $('.frame') != 'undefined' || null) { 
 
    $(".frame").ready(function() { 
 
     var locations = ['http://www.webstarts.com/support/2011/03/how-to-add-an-iframe-to-your-webstarts-website/', 'http://www.wix.com/app-market/html-iframe-embed/overview', 
 
     'http://codepen.io/jmelgoza/pen/jEaGYg', 
 
     'http://www.oddee.com/item_96986.aspx', 
 
     'http://www.imdb.com/title/tt2488496/', 
 
     'http://www.w3schools.com/tags/tag_iframe.asp' 
 
     ]; 
 
     var len = locations.length; 
 
     var iframe = $('.frame'); 
 
     var i = 0; 
 
     setInterval(function() { 
 
     iframe.attr('src', locations[++i % len]); 
 
     }, 5000); 
 
    }); 
 
    } 
 
});

我想有它,以便每次源變化有淡入/淡出效果。我會如何去做這件事?目前來源正在切換,但它突然間在信息源之間彈出。我希望在切換源代碼時有更優雅的轉換。任何幫助都會很棒。謝謝。

+0

僅供參考,'$(「.frame」)。ready(...);'不是你認爲的那樣... –

+0

我認爲它是什麼?你會做什麼(在這種情況下)或者什麼會更好? – Bastian

+1

iframe沒有準備好的活動 –

回答

0

試試這個:

setInterval(function() { 
    iframe.attr('src', locations[++i % len]); 
    iframe.fadeOut(300, function() { 
     iframe.fadeIn(300); 
    }); 
}, 5000); 
-1

我可以更新這個答案的代碼變得相關更多的問題,但脫穎而出的第一件事就是這一行:

if (typeof $('.frame') != 'undefined' || null) { 

我想你在這裏尋找這是你的防禦性編程技巧:

if ($('.frame') != null && $('.frame').length > 0) { 
+0

'$('.frame')'將永遠是一個jQuery對象。它永遠不會是未定義的類型,字符串未定義或爲空。 – Quentin

+0

的確如此。更新。從技術上講,你可能只需要'$''frame')。length> 0',但我仍然喜歡保留'$('.frame')!= null'。 – user1477388

0

我最終使用了類似th是:

setInterval(function() { 
 
       iframe.attr('src', locations[++i % len]); 
 
       iframe.fadeOut(300, function() { 
 
        iframe.fadeIn(300); 
 
       });

和替換當前間隔的功能。我也會'推薦'誰向我推薦這個,但我不再看到他們的帖子。此外,如果有關於如何改進此代碼的任何建議(即使它似乎正在工作),我正在傾聽。我相信它可以更好。

+0

我放棄了我所說的答案。 – krlzlx

相關問題