我有一個頁面上有大約100個視頻(youtube)加載iframe。他們都在手風琴風格的菜單中,我想知道是否有方法讓他們在手風琴開啓或頁面上可見iframe時加載。現在它佔用太多內存並且滯後頁面很多。iframe加載時可見
回答
您尚未顯示任何允許我們在代碼中包含此代碼的代碼。
不要設置視頻的SRC,將其存儲在數據
<iframe src="about:blank" data-src="http://youtu.be/etc"></iframe>
使用任何觸發手風琴,$(本)在於手風琴項目
var $iframe=$(this).find('iframe');
if ($iframe.data('src')){ // only do it once per iframe
$iframe.prop('src', $iframe.data('src')).data('src', false);
}
如果你想這樣做,你可以設置iframe的src屬性,它指向視頻,當手風琴打開時觸發的事件。我還沒有和手風琴一起工作,但很確定有一個初始事件。
評論!=答案 – Popnoodles
嗯,在某處使用代碼編寫代碼並不總是上帝。受益的因素是研究,並給他們看看。我的想法。當代碼發佈時,他們需要一部分幫助,然後發佈代碼修復或完成。當問題是問一個方向時,我給他們一個方向。比浪費評論沒有理由,但有爭議的事情更好。 :) – Casey
在這裏,檢查iframe是否可點擊,是這樣,那意味着它被加載。然後,設置手風琴觸發事件的內容。發佈一些代碼,並且可以爲您編寫一些特定的內容,以瞭解如何合併這種方法。 – Casey
好了,所以它將如下:
HTML
<div id="accordion">
<h3>Video 1</h3>
<div class="content" data-link="//www.youtube.com/embed/nlcIKh6sBtc">
<iframe width="200" height="200" src="" frameborder="0"></iframe>
</div>
<h3>Video 2</h3>
<div class="content" data-link="//www.youtube.com/embed/My2FRPA3Gf8">
<iframe width="200" height="200" src="" frameborder="0"></iframe>
</div>
<h3>Video 3</h3>
<div class="content" data-link="//www.youtube.com/embed/CevxZvSJLk8">
<iframe width="200" height="200" src="" frameborder="0"></iframe>
</div>
</div>
的JavaScript
var elements = document.getElementsByClassName("content"), bubbles = false;
var observer = new WebKitMutationObserver(function (mutations) {
mutations.forEach(attrModified);
});
for(var i = 0; i < elements.length; i++){
observer.observe(elements[i], { attributes: true, subtree: bubbles });
}
function attrModified(mutation) {
var contentStyle = mutation.target.getAttribute("style");
var IsVisible = contentStyle.indexOf("block") != -1;
if(!IsVisible){
var $currentIframe = $(mutation.target).children("iframe");
$currentIframe.attr("src", "");
}
else{
var link = $(mutation.target).data("link");
var $currentIframe = $(mutation.target).children("iframe");
$currentIframe.attr("src", link);
}
}
$("#accordion").accordion();
對於那些誰正在尋找這個問題的答案,另一種解決方案是增加lazyloadË適合內容。可以使用jQuery LazyLoad Any庫來實現相同。圖書館也有例如。渲染YouTube Video。
- 1. 在iframe加載時加載文本
- 2. 延遲加載? /只在視口中可見時加載圖像
- 3. 加載內容可見
- 4. 同時加載2個iframe
- 5. 加載時iFrame黑框?
- 6. 負載JS時可見
- 7. 加載IFRAME onClick
- 8. iframe不加載
- 9. 加載的IFrame
- 10. 當通過iframe下載文件時檢測iframe加載
- 11. mvc頁面可以加載在iframe
- 12. 加載意見
- 13. JQuery切換UL加載可見
- 14. 鍵入加載但不可見
- 15. jQuery加載函數 - 不可見圖像
- 16. AJAX加載圖像勉強可見
- 17. ultraToolbarsManager不可見加載表格後
- 18. 從類加載器不可見接口
- 19. Android預加載頁面,以便應用程序加載該頁面時可見
- 20. 我可以在加載iframe時隱藏fancybox
- 21. onload後加載iframe
- 22. iframe加載在javascript
- 23. FancyBox2 iFrame未加載
- 24. JS Iframe加載器
- 25. 用Fx.Slide加載iframe
- 26. 強制iframe加載
- 27. ASP.NET MVC iframe加載
- 28. iframe加載多次
- 29. Chrome的加載IFRAME
- 30. JavaScript頁面加載時間iframe出現
您能確定每個手風琴項目何時開放嗎?或者你能提供打開每個項目的JS和一些顯示至少一個手風琴項目的HTML嗎? – Popnoodles