3
我試圖爲youtube播放器創建自己的「字幕」系統。目前我堅持js滾動,只是無法正常工作。Div滾動與jQuery動畫
代碼:
<script type="text/javascript" language="javascript">
var player;
var scrollToTimePosition;
// document.onReady
$(document).ready(function() {
var id = "QH2-TGUlwu4";
var params = { allowScriptAccess: "always" };
swfobject.embedSWF("http://www.youtube.com/v/" + id + "?enablejsapi=1", "video-container", "500", "375", "8", null, null, params, null);
});
// YouTube API Required function
function onYouTubePlayerReady() {
player = document.getElementById("video-container");
//player.playVideo();
setInterval(function() {
if(player.getPlayerState() == 1) {
var time = Math.round(player.getCurrentTime());
if(time > 1 && scrollToTimePosition != time) {
var anchor = $("#text-container > a[href=#"+time+"]");
if(anchor.length) {
scrollToTimePosition = time;
$('#text-container').animate({
scrollTop: anchor.offset().top - $("#text-container").offset().top
}, 1000);
}
}
}
}, 500);
}
</script>
你可以看到它在線here(抱歉頁俄語)。在Google Chrome瀏覽器中,它有時會上下跳動,並停在錯誤的位置。它發生在滾動條已經滾動到某個位置並且下一個也是部分可見的時候。
UDP:我已經添加控制檯日誌,便於調試,日誌是這樣的:
Move to #33 with shift 204px
Move to #43 with shift 219px
Move to #46 with shift 261px
Move to #53 with shift 438px
Move to #60 with shift 480px
Move to #63 with shift 657px
Move to #65 with shift 915px
類型與您的問題無關,但當用戶在視頻中跳過時會發生什麼情況? –
由於間隔每500毫秒檢查一次當前視頻時間位置,所以該腳本在向前跳過時工作正常,我還想指出至今爲止的好腳本。以前沒有真正見過類似的東西。 –
@MeisamMulla,它運作良好。當您跳過視頻時,它會繼續播放到下一個滾動點,然後將字幕滾動到正確的位置。我想通過自動滾動到最近的位置來立即改善這一點。 –