スクロールを監視し、スクロールを制御して、特定のパラメーターに基づいてページをアニメーション化するスクリプトがあります。これを行うために、window.scrollTo(0, currentScrollTop);
Windows 上の Firefox でスムーズなスクロールを完全に中断する呼び出しが行われます。次に、ページのスクロールを必要な場所にアニメーション化できます。
残念ながら、このトリックは MacOS のブラウザーでは機能しないようで、JavaScript とブラウザーが競合してウィンドウをスクロールするため、エクスペリエンスが損なわれます。
JavaScriptでスムーズスクロールを停止するクロスブラウザの方法はありますか?
問題の効果を使用するサイト: http://capitalismis.com
関連する (簡略化された) コード:
$doc.on('scroll', function(e)
{
$doc.off('scroll');
window.scrollTo(0, $doc.scrollTop());
var aniSpeed = 1500 * Math.abs(scrollTop - selected.top) / windowHeight;
$body
.stop()
.animate({scrollTop: selected.top}, aniSpeed, 'easeOutQuad');
}
);