ここnicescrollにあるスムーズスクロールプラグインを使用しています
私が最初に遭遇した問題は、それ自体が「静的な html の高さ」に設定されていることです。ドキュメントがウィンドウのロード時にアイテムをロードしているため、これはうまくいきませんでした。そこで、次のように見つけたスクリプトを追加しました。
$(window).load(function () {
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight)
);
}
$('html').height(getDocHeight());
このスクリプトを使用すると、すべての動的アイテムが読み込まれた後でも HTML の高さを変更できるため、スムーズ スクロールが再び機能するようになりました。
しかし、ボタンをクリックしてアイテムをロードし、ドキュメントを再度変更するため、別の問題に直面しています。今回は上記のスクリプトが機能しないため、関数をクリック イベントに配置します。
$(".button").live("click", function(){
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight)
);
}
$('html').height(getDocHeight());
});
これは私にはうまくいかないようです。では、クリックイベントの後にドキュメントの高さを取得および設定 (変更) するにはどうすればよいですか?