現在、私は小さなトレーニングコードに取り組んでいます。半固定のページ要素をコーディングしようとしています。これは今までの私の結果です:
$(document).ready(function () {
var elementPosition = $("#header").offset();
var elementHeight = $("#header").outerHeight();
$("#header").before("<div id='placeholder' style='display:none; height:" + elementHeight + "px'></div>");
$(window).scroll(function () {
checkAttached("#header");
});
function checkAttached(element) {
var windowDepth = $(window).scrollTop();
if (windowDepth >= elementPosition.top) {
$(element).addClass("attached");
$("#placeholder").css("display", "block");
} else {
$(element).removeClass("attached");
$("#placeholder").css("display", "none");
};
};
});
問題は、私はその解決策にあまり満足していないということです。もう少し柔軟にしたいと思います。私の目標は、さまざまなページ要素に対処できる独立した関数です。このようなもの:
attachThis(element);
現在、スクロールイベントで問題が発生しています。これを関数内に含めることはできませんね。さらに、「elementPosition」を上書きしないための良い解決策がわかりません。私の現在の解決策は、関数の外でそれを定義することです。あまりきれいではありません。
もちろん、私はあなたがより良いスクリプトを提供することを期待していませんが、多分あなたは私を正しい方向に押して、私に適したテクニックを指摘することができますか?専門家がこのタスクにどのように取り組むか知りたいです。