.scrollTo への呼び出しを効果的に傍受し、要素が特定の要素であるかどうかを確認して、ブラウザーがその要素にスクロールするのを停止できるようにしています。.scrollTo を実行する JavaScript ファイルは制御できないため、インターセプトする必要があります。
これが私がこれまでに持っているコードです:
var oScrollTo = scrollTo;
HTMLElement.prototype.scrollTo = function(){
var scrollId = this.id;
if ( scrollId !== 'id-of-element') {
console.log("yes");
$(scrollId).oScrollTo();
} else {
console.log("no");
}
};
これは基本的に、この回答の組み合わせです: https://stackoverflow.com/a/1740510とこの回答: https://stackoverflow.com/a/19209665
現在、それは .scrollTo 呼び出しをインターセプトし、一致する要素でない場合は「はい」をログに記録し、一致する場合は「いいえ」をログに記録します。
ただし、「yes」がログに記録された場合でも、通常の方法で .scrollTo を実行する必要がありますが、実行されません。どうすればそれを実現できるかについてのアイデアをいただければ幸いです。ありがとう!