AppleがMacBook、iPhone、最近ではMacBook Pro product pageの最近使用している機能と同様の機能を実装しようとしています。スクロールでビデオをスクラブする(apple.com esque) - ひどくつぶやく
MBP製品ページをチェックすると、スクロールするときに画面とタッチバーがアニメーション表示されます。それは本質的にビデオです。
これを採用することで、ビデオがぼやけているようです。私の場合は4つのビデオがありますが、1つのビデオに切り分けるとより効果的ですが、まだ100%ではありません。
私は、それがより良く流れるようにここに適用できるどの方法/戦術が好奇妙なのですか?
動画ファイルをブロブとして保存する方が効果的でしょうか? ビデオをシリーズの画像に変換する方が良いですか?
Demo。
ここに問題のコード:
// select video element
var vid0 = document.getElementById('v0');
var vid1 = document.getElementById('v1');
var vid2 = document.getElementById('v2');
var vid3 = document.getElementById('v3');
var windowheight = $(window).height()-20;
var scrollpos = window.pageYOffset/400;
var targetscrollpos = scrollpos;
var accel = 0;
// ---- Values you can tweak: ----
var accelamount = 0.1; //How fast the video will try to catch up with the target position. 1 = instantaneous, 0 = do nothing.
// pause video on load
vid0.pause();
vid1.pause();
vid2.pause();
vid3.pause();
window.onscroll = function(){
targetscrollpos = window.pageYOffset/400;
};
setInterval(function(){
scrollpos += (targetscrollpos - scrollpos)*accelamount;
//update video playback
vid0.currentTime = scrollpos;
vid0.pause();
vid1.currentTime = scrollpos;
vid1.pause();
vid2.currentTime = scrollpos;
vid2.pause();
vid3.currentTime = scrollpos;
vid3.pause();
}, 40);
非常に有益な回答です、ありがとうございます!私はnpmを介して少しスクリプトを見つけました。また、ビデオをブロブにロードします。キーフレームのフレーム距離を '1'に設定すると、スクラブできるようになります。しかし、それは少しファイルサイズを増加させます。私はファンがたくさんスピードアップすることに気づいた(Safariはうまくいき、ChromeとFXはそうではない)。私が作ったデモ(http://output.jsbin.com/lewizuyamo/1)を見ると、2本のビデオしかなく、最終製品のビデオは5-6本です。これを念頭に置いて、ファンのスピードアップを図るために最適化することも可能だと思いますか? – INT
今のところ、JPEG静止画に傾いています(サイズが大きすぎるとiOS上でSafariがクラッシュするため、スプライトは実行可能ではないと思わないでください)。しかし、それはファイルサイズのプレミアムを伴います。私はCPU負荷やファンのスピードアップに関するビデオよりも優れた性能を発揮するかどうか疑問に思う。 – INT
@INTビデオの処理がこの多くの要素でかなり重いので疑問だ。 )。負荷を軽減するためにビデオのあらゆる種類の最適化を行うことができます(私は[この回答]でいくつかのヒントを与えました(https://stackoverflow.com/questions/40359750/html5-video-and-canvas-cpu-optimization/40398424 #40398424) - 最も関連性の高い部分は最後の2つです。Safariはhwデコードを利用するためにおそらくサブシステムとうまく統合されますが、クロムはffmpegに依存します。ブロブとしてロードすることは素晴らしいです、それはより多くのメモリを消費しますが、即座に利用できます。 [...] – K3N