Запустите JQuery перед загрузкой страницы - PullRequest
0 голосов
/ 22 мая 2018

Я использую довольно жесткий шаблон от Squarespace.Мне нужно показывать навигацию по боковой панели только на одной странице, однако Squarespace не поддерживает это и показывает боковую навигацию на ряде других страниц, где мне это не нужно.

Я написал следующее, что работает, однако он выводит #rightSidebar перед его удалением и изменением страницы, это занимает меньше секунды, однако все равно выглядит довольно плохо.

$(document).ready(function() {

    // turn sidebar off on any pages it shouldn't be
    if ($("body").is('.item-main-image, .collection-5a9ebc04e2c4835e358488e3')) {

        // CSS alterations
        $(".collection-type-blog #content").css("width", "100%");
        $(".collection-type-blog #content").css("max-width", "700px");
        $(".collection-type-blog #content").css("display", "block");
        $(".collection-type-blog #content").css("margin", "0 auto");
        $("#rightSidebar").css("display", "none");
        $("#rightSidebar").css("width", "0");
    }

});

Есть ли способ вообще остановить #rightSidebar от рендеринга или я могу запустить это тело кода перед загрузкой страницы?

1 Ответ

0 голосов
/ 22 мая 2018

Создайте правило CSS, чтобы скрыть боковую панель

#rightSidebar { display: none; }

Если вы хотите, чтобы оно отображалось, пусть ваш javascript сделает его видимым.

$('#rightSidebar').show();

Создание отображения боковой панелиникто не помешает браузеру отрисовать его, не допуская доли секунды между отображением и удалением JavaScript.

...