Intereting Posts
Как отключить подключенный к сети плагин только для одного сайта? Показывать этот код, если пользователь ранее оставлял комментарий Пусть пользователи делятся сообщениями через Twitter? Возможно ли создать альтернативную структуру для URL-адресов с несколькими тегами? Есть ли JavaScript API? Как получить доступ к публичным и частным данным в JS? Как я могу отложить публикацию страницы или публикации? Исключая тип сообщения из построителя ссылок WordPress Как добавить текущий класс к текущему сообщению? Как динамически добавлять настраиваемые поля основных родительских страниц и их значения ко всем подстраницам? Как показывать сообщения по месяцам? Не удается найти Меню на панели управления Как получить сообщения из двух категорий с WP_Query? Пользовательские запросы PT, Taxonomys и 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 сеанса, чтобы сохранить значение, указывающее, что анимация была выполнена и проверьте его, прежде чем делать это снова.