我想将当前的HTML5音频播放器换成SoundCloud HTML5 Widget播放器。我担心的是,我的WordPress(org)音乐网站上每个页面有11个帖子,因此每页将有11个不同的SoundCloud Iframes。这会大大减慢我的网站吗?
除了表现更好的iframe之外,还有另一种嵌入SoundCloud播放器的方法吗?
iframes将阻止Onload并减慢您的页面加载。
有关加载iframe和异步解决方案的分解
,请参见本文。另外,您可以按需加载iframe,拥有一个占位符图像,当单击时,使用JavaScript加载SoundCloud播放器。
这是应用于YouTube播放器的此过程的细分
最后,您可以使用SoundCloud API/库来创建一个轻巧的播放器以嵌入您的帖子。
有点迟到,但这是一种无需放慢页面的方法:
要求: jQuery and Fitvids.js(这使iframe响应不使用CSS)
jQuery:
$(window).load(function() {
$(".soundcloud-wrapper").each(function() {
var URL = $(this).attr('id');
var htm = '<iframe width="100%" height="200px" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/' + URL + '&auto_play=false&hide_related=false&show_comments=false&show_user=false&show_reposts=false&visual=true" frameborder="0"></iframe>';
$(this).html(htm).fitVids().removeClass('.loading');
});
});
html:
<div class="soundcloud-wrapper" id="60229275"><!-- this loads the iframe without blocking --></div>
CSS
.soundcloud-wrapper iframe {
/* --- your styles if applicable --- */
}
.soundcloud-wrapper.loading {
width:100%;
height:200px;
}
注意:.loading是iframe加载时已删除的类。我正在使用它,以便在那里有一个砖石布局的高度,否则空间倒塌了。它很有用,因此即使您不使用砌体,页面也不会跳跃,您也会更改CSS和jQuery中的值以反映您的iFrame size。