cookies + redirect + animation
Доброе всем время суток.
У меня такая задача, есть главная страница и несколько внутренних. Если пользователь заходит на сайт из вне (на главную страничку) то никакой анимации быть не должно, но если с внутренней страницы он переходит на главную, то должна включатся некая анимация. Как я понял, это нужно сделать через кукис, т.е если пользователь переходит с такой то определённой внутренней страницы, то анимация включается, а если с какой сторонней, то анимации нет. К несчастью с кукис никогда не работал, по этому пожалуйста прошу помочь найти простое решение. |
Редирект здесь ни при чём. Вот один из возможных вариантов решения:
В head страниц подключаем библиотеку jquery, плагин jquery.cookie и наш файл с действиями <head> <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="jquery.cookie.js"></script> <script type="text/javascript" src="actions.js"></script> </head> Файл actions.js $(document).ready(function(){ // устанавливаем пустые cookie, если они отсутствуют (для первого посещения в данной сессии) if (!$.cookie('animate')){ $.cookie('animate', '', { path: '/' }); }; // получаем значение адресной строки и парсим его по слэшу на части (то есть создаём массив) var currentUrl = location.href.replace('http://', '').split('/'); // если мы на главной странице (currentUrl имеет одну часть: site.com, то есть index страница) if (currentUrl.length == 1){ // при этом если cookie не пустые if ($.cookie('animate') == 1){ // запускаем анимацию // $('#animatedElement').animate(); } // устанавливаем пустые cookie $.cookie('animate', '', { path: '/' }); // если мы не на главной странице (currentUrl имеет более одной части: site.com/page или site.com/pages/1) } else { // устанавливаем cookie со значением 1 $.cookie('animate', 1, { path: '/' }); } }); Так как срок жизни cookie не указан, то они создаются сессионно, и при закрытии браузера удаляются. |
Большое спасибо, за столь раскрытый и наглядный пример!
Я так понимаю, что если анимацию, мне надо будет заменить какой нибудь функцией, то 14 строку я просто могу заменить названием этой функции? |
Абсолютно верно.
jQuery это удобный инструмент для работы с JavaScript, поэтому рекомендую сначала изучить учебник JavaScript, а потом разбираться в jQuery. Тогда многие вопросы сами исчезнут. |
Цитата:
|
Часовой пояс GMT +3, время: 04:11. |