Intereting Posts
Как заказать персонализированный тип сообщений несколькими настраиваемыми полями? Переписать правила, не работающие в WordPress Синхронизация базы данных между локальными и производственными Сообщение WordPress не сохраняет проблему с GUID add_filter для встраивания youtube? Поддержка нескольких отображаемых изображений настраиваемые поля, используемые для блогов, страниц и продуктов. Типы сообщений, но значения не сохраняются, когда это тип публикации продукта в woocommerce Как «Global Ignore» / «Hell Ban» кого-то, ограничивать доступность только для автора? Как кэшировать (основные) запросы API? JSON Feed на моем WordPress Блог Активы в css не связаны правильно на страницах, кроме дома Пользовательский тип сообщения 'orderby' => 'meta_value' не работает update_post_meta, синтаксический анализатор xml Что произойдет, если я отключу свой виджет для визуального композитора? Настроить уведомление об обновлении WordPress в области бэкэнда wp-admin

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

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

<?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 сеанса, чтобы сохранить значение, указывающее, что анимация была выполнена и проверьте его, прежде чем делать это снова.