新しいビデオ要素を作成していて、最初のフレームが取得されるまでビデオの読み込みを開始してからその要素を削除するまでスピナーを表示します。以下の私のコードです -新しく作成されたビデオ要素内に要素を作成/削除する
var videoElem, src;
videoElem = document.createElement("video");
videoElem.src = src;
var preloader = '<div class="preloader-wrapper"><div class="spinner-layer"><div class="circle-clipper left"><div class="circle"></div></div>' + '<div class="gap-patch"><div class="circle"></div></div><div class="circle-clipper right"><div class="circle"></div></div></div></div>';
//renders when video has started loading - show preloader
videoElem.addEventListener("loadstart", function() {
console.log("Video has started loading...!");
//jQuery(preloader).insertBefore(videoElem); //works fine but I don't know how to delete the preloader in the loadeddata eventlistener
videoElem.appendChild(preloader);
});
//renders when is loaded - delete preloader
videoElem.addEventListener("loadeddata", function() {
console.log("Video has loaded successfully!");
videoElem.removeChild(preloader);
});
appendChild
とremoveChild
が機能していません。エラーを与える:
HTML Nodes
にそれを追加するために、
HTML Node
にあなたの文字列を解析する必要が
Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node' at HTMLVideoElement.eval
は ' 'の実行に失敗しました - 次のように要素の
出力がある - これは、次のような、私は、プリローダーをメインdiv要素のIDを取った後、追加/削除しましたappendChild on 'Node': '#document'タイプのノードは、 'VIDEO'タイプのノード内に挿入されない可能性があります。 ' –
@Liz。それをビデオノードの子として挿入するのではなく、 'insertBefore()'または 'insertAfter()'を使ってみてください。これらのメソッドの詳細については、こちらをご覧ください(https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore)。 'DOM'の位置に挿入した後、ビデオノードの上に置きます。 –
リンクを共有してくれてありがとう。それは私を助けた –