私は視差のイントロでa onepagerをビルドしています。私はJSの以下の部分を使用してい視差効果について:ScrollMonitorとScrollReveal:SafariとFirefoxの視差スクロールパフォーマンス
// Parallax
var layerBg = document.querySelector('.js-layer-bg');
var layerText = document.querySelector('.js-layer-text');
var sectionIntro = document.getElementById('section-intro');
var scrollPos = window.pageYOffset;
var layers = document.querySelectorAll('[data-type=\'parallax\']');
var parallax = function() {
for (var i = 0, len = layers.length; i < len; i++) {
var layer = layers[i];
var depth = layer.getAttribute('data-depth');
var movement = (scrollPos * depth) * -1;
var translate3d = 'translate3d(0, ' + movement + 'px, 0)';
layer.style['-webkit-transform'] = translate3d;
layer.style.transform = translate3d;
}
};
window.requestAnimationFrame(parallax);
window.addEventListener('scroll', function() {
// Parallax layers
scrollPos = window.pageYOffset;
window.requestAnimationFrame(parallax);
// Animate text layers
var vhScrolled = Math.round(window.pageYOffset/window.innerHeight * 100);
if (vhScrolled > 100 && layerText.classList.contains('is-hidden')) {
layerText.classList.remove('is-hidden');
} else if (vhScrolled <= 100 && !layerText.classList.contains('is-hidden')) {
layerText.classList.add('is-hidden');
}
});
これとは別に、私は2つのライブラリを使用してスクロールには、いくつかの他のものをアニメーション化しています。あまりにも特別なものはありません。
私はこれをChromeで開発しており、すべてがスムーズに機能しているようです。しかし、私がSafari、特にFirefoxでテストしたところ、実際にはブラウザがクラッシュするほど遅くなってしまった。
私は間違って何をしているのか、なぜパフォーマンスがブラウザ間でどう違うのか分かりません。
うまくいけば、私を助けることができます、ありがとう!
部分的な透明性が悪いスクロールのperfの最も一般的な原因です。 – dandavis