私はJSの問題を抱えており、リストの幅のliがmax-widthを超えたときに水平方向のulをチェックし、それらの要素のサイドパディングを減らしてすべてのliを適合させる必要があります。
問題は、liがulに追加されるすべてのコードを制御できないという理由だけで、liが追加されたときにイベントを発生させることができないことです。
したがって、私のオプションは、liの全幅のチェックを1秒間に数回ループすることでした。次のようになります。
function UpdateNavBar(initialX) {
var w = 0;
var maxW = 100;
var visibleLis = $(".navigationbar ul li.menuitem");
$.each(visibleLis, function (i, e) {
return w += $(e).width();
});
if (w >= maxW) {
--xPadding;
$(".navigationbar ul li.menuitem a").css({ "padding-left": xPadding, "padding-right": xPadding });
}
w = 0;
setTimeout(UpdateNavBar, 100, initialX);
}
var xPadding = parseInt($(".navigationbar ul li.menuitem a").css("padding-left").replace("px", ""));
UpdateNavBar(xPadding);
私の質問は次のとおりです。私が見逃しているこれを達成するための他の明白な方法はありますか?このような機能は、あらゆる種類のデバイスで実行されることを意図していることを念頭に置いて、サイトのパフォーマンスにどのように影響しますか?
どうもありがとう。