Intereting Posts
как заставить wp_editor сохранять данные на странице администрирования плагина Передайте переменную get_template_part Добавить минимальный размер текста к избранному изображению Обновление постданных без создания дубликата на wp_insert_post из RSS-ленты Выполняется ли действие при добавлении тега через метатекст «Теги»? как сделать функцию <! – more -> в RSS-канале, как в сообщениях Изменение сообщений об ошибках входа в систему Удалить категорию из ссылки меню wp-cli 0.14.1 Ошибка MySQL Переопределить функцию плагина Как добавить тег dvi в короткий код, затем сгенерировать сгенерированный текст с помощью jQuery Формы с несколькими типами элементов с использованием пользовательских типов сообщений Штрих-код WordPress с разбивкой на страницы Создание раскрывающегося списка из пользовательского типа сообщения Как избежать конфликтов имен плагинов с уведомлением об обновлении?

Загрузите шаблон боковой панели только один раз, чтобы предотвратить несколько анимаций

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

<?php get_header(); ?> <div class="content"> <?php get_sidebar('left'); ?> <div class="middlebar"> this is the main content </div> </div> <?php get_footer(); ?> 

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

 <?php get_header(); ?> <div class="content"> <?php get_sidebar('left'); ?> <div class="middlebar"> pagecontent </div> <?php get_sidebar('right'); ?> </div> <?php get_footer(); ?> 

Я анимировал эту боковую панель, чтобы она скользила после загрузки страницы.

 jQuery(window).ready(function($){ $("#sidebarRight").animate({right: '0px'}); }); 

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

Моя первая идея состояла в том, middlebar div каждый раз щелкнуть мышью. Так что не весь шаблон страницы перезагружается, а только новый контент загружается и вставляется в div. Положительным побочным эффектом было бы то, что нужно было загружать меньше данных, но я не смог предотвратить множественную загрузку боковой панели.

Я также пытался установить файлы cookie, но это не сработало.

Как загрузить боковую панель только при первом щелчке, чтобы анимация также воспроизводилась только один раз.

Solutions Collecting From Web of "Загрузите шаблон боковой панели только один раз, чтобы предотвратить несколько анимаций"

вы можете написать сценарий с условиями

 <?php is_front_page(){ ?> <script> jQuery(window).ready(function($){ $("#sidebarRight").animate({right: '0px'}); }); </script> <?php } ?> 

альтернативно, вы можете установить cookie или localstorage, чтобы анимация была завершена

 <script> if(!localStorage.getItem("animated")){ // check if the animated is set if not set do the animation jQuery(window).ready(function($){ jQuery("#sidebarRight").animate({right: '0px'}); localStorage.setItem("animated", "yes"); // after comleting the animation set the animated so that animation does not happen again }); } </script> 

Если вам нужен сайт с «состоянием», вам нужно будет разработать тему для создания своего рода «Одностраничного приложения», в котором браузер в принципе никогда не перезагружает страницы, а делает все обновления через AJAX.

Все остальное означает полную перезагрузку страницы, и в этом случае страница будет «мигать» в любом случае, поэтому не будет уверенности в ценности удаления анимации, но вы можете использовать cookie сеанса, чтобы сохранить значение, указывающее, что анимация была выполнена и проверьте его, прежде чем делать это снова.