Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2020, 20:03
Аватар для Mytnyi
Интересующийся
Отправить личное сообщение для Mytnyi Посмотреть профиль Найти все сообщения от Mytnyi
 
Регистрация: 22.03.2020
Сообщений: 16

В какую сторону двигаться? Cookie (Javascript)
Уважаемые доны. Прошу направить меня в нужную степь и по возможности подсказать как действовать.

Идея такова: имеется шапка с двумя блоками (серый и синий). Когда пользователь заходит на сайт вкладка "Частным лицам" по умолчанию активна (на картинке_1 это видно) и пользователь может переходить по ссылкам в синей части, таким как: "Каталог", "Услуг и цены", "Межгород" и т.д. При этом вкладка "Частным лицам" остается активной. А когда Пользователь нажимает на ссылку "Юридическим лицам", то вкладка "Юридическим лицам" должна становится активной и пользователь может переходить по другим ссылкам меню в синей части (картинка_2), а вкладка "Юридическим лицам" должна оставаться активной. Все это должно реализовываться с помощью cookie. Собственно как должны меняться ссылки в синей части меню это соображу. А вот в остальном задачу не соображу как реализовать.
Изображения:
Тип файла: jpg Картинка_1.jpg (88.6 Кб, 9 просмотров)
Тип файла: jpg Картинка_2.jpg (86.6 Кб, 8 просмотров)

Последний раз редактировалось Mytnyi, 22.03.2020 в 20:54.
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2020, 20:46
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Многое зависит от того, какими механизмами Вы пользуетесь
Если при каждом выборе в меню идет обращение к серверу, который генерит страницу, это одно. Пусть он ее и генерит всю, в зависимости от ссылки вместе с меню.
А если вы загружаете сразу весь возможный контент (для всего меню), то при нажатии пункта меню должен становится видимым тот блок, который к нему относится, а остальные гаситься.
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2020, 21:10
Аватар для Mytnyi
Интересующийся
Отправить личное сообщение для Mytnyi Посмотреть профиль Найти все сообщения от Mytnyi
 
Регистрация: 22.03.2020
Сообщений: 16

voraa,
Процесс должен происходит по средствам cookie
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2020, 21:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Mytnyi,
Открывашка 253 с запоминаем открытой вкладки
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2020, 23:14
Аватар для Mytnyi
Интересующийся
Отправить личное сообщение для Mytnyi Посмотреть профиль Найти все сообщения от Mytnyi
 
Регистрация: 22.03.2020
Сообщений: 16

Сообщение от рони Посмотреть сообщение
Mytnyi,
Открывашка 253 с запоминаем открытой вкладки
Спасибо. Но проблема нерешилась. После нажатия на юрлица пользователь переходит на другу ссылку, а вкладка юрлица должна быть активна. а в приведенном вами примере пользователь остается на одной странице.
Ответить с цитированием
  #6 (permalink)  
Старый 22.03.2020, 23:23
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от Mytnyi Посмотреть сообщение
voraa,
Процесс должен происходит по средствам cookie
Сорри, но какой в этом смысл?
Зачем заставлять пользователя возвращаться на то место, с которого он ушел? Это не роман, который читают последовательно. Это сайт с разнообразной информацией. Человек что то посмотрел, что то ему показалось интересным, он посмотрел еще пару пунктов меню, не нашел ничего важного и ушел. И зачем следующий раз возвращать его туда же?
Представьте, что так поступал бы какой-нибудь сайт типа mdn, или википедии?.
Пусть человек положит интересующее его место в закладку.
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2020, 23:44
Аватар для Mytnyi
Интересующийся
Отправить личное сообщение для Mytnyi Посмотреть профиль Найти все сообщения от Mytnyi
 
Регистрация: 22.03.2020
Сообщений: 16

Сообщение от рони Посмотреть сообщение
Mytnyi,
Открывашка 253 с запоминаем открытой вкладки
Сообщение от voraa Посмотреть сообщение
Сорри, но какой в этом смысл?
Зачем заставлять пользователя возвращаться на то место, с которого он ушел? Это не роман, который читают последовательно. Это сайт с разнообразной информацией. Человек что то посмотрел, что то ему показалось интересным, он посмотрел еще пару пунктов меню, не нашел ничего важного и ушел. И зачем следующий раз возвращать его туда же?
Представьте, что так поступал бы какой-нибудь сайт типа mdn, или википедии?.
Пусть человек положит интересующее его место в закладку.
Попробую объяснить. Вкладки(ссылки) Физическим лицам и юридическим лицам - разные, под ними меню второго уровня тоже с разными ссылками. Человек переходит с вкладки Физические лица на вкладку Юридические лица и у него не только меняется меню второго уровня, но он и сам переходит на другу страницу site.ru/yurliucam/


Суть вся в том что и во вкладах Физические лица и Юридические лица в меню второго уровня попадаются одинаковые ссылки, например, такие как: "Контакты".


И еще весь этот блок хедара у меня подключен на все страницы через:

<?php
include_once "head.php";
?>

то есть, все ссылки, классы и тп. не поменять.
Ответить с цитированием
  #8 (permalink)  
Старый 22.03.2020, 23:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Mytnyi
Попробую объяснить.
могу пожелать только удачи, возможно кто-то подскажет решение, сам я не понимаю о чём вы пишите и что вам нужно.
Ответить с цитированием
  #9 (permalink)  
Старый 23.03.2020, 06:41
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Mytnyi,

let categoryLink, targetLink;

// среди всех ссылок, которые находятся под вкладками ищется та, которая указывает на текущую страницу,
// на такую найденную ссылку добавляется класс target (чтобы добавить эффект «обводка»)
Array.prototype.filter.call(document.querySelectorAll(".menu > li > a + ul a"), link => link.href === location.href).slice(0, 1).forEach(link => {
	if(targetLink) targetLink.classList.remove("target");
	link.classList.add("target");
	targetLink = link;
});

// находим на самих вкладках такую ссылку, адрес которой совпадает с текущим адресом страницы (если есть)
categoryLink = Array.prototype.find.call(document.querySelectorAll(".menu > li > a"), link => link.href === location.href);
// а если нет, то определяет ссылку на вкладке, к какой категории относится текущая страница
categoryLink = targetLink ? targetLink.closest(".menu > li").querySelector("a") : categoryLink ? categoryLink : document.querySelector(".menu > li > a");
// на такую найденную ссылку добавляется класс active (чтобы добавить эффект «выбранная вкладка»)
categoryLink.classList.add("active");


Здесь выполняются две задачи — обводится в кружочек ссылка, на которую перешли, и показывается та вкладка, где эта обведённая ссылка находится.

Рабочий пример можно посмотреть тут — https://charm-launch.glitch.me/h/ (код можно смотреть через консоль разработчика в браузере (Ctrl+Shift+I или F12), или только исходный код страницы (Ctrl+U)

Сообщение от Mytnyi
Процесс должен происходит по средствам cookie
И как он сможет произойти, если например ссылка была отправлена кому-то? Правильней сказать так — «Процесс должен происходить при помощи URL». Т. е. основываясь на текущем значении URL страницы, нужно найти ссылку, которую нужно «обвести в кружочек» (если возможно), также ссылку, которая представляет «вкладку» (т. е. текущую категорию, а если не возможно, то состояние по умолчанию — в примере выше это первая попавшая вкладка и подкатегория не выбирается — состояние, которое подходит, если ссылки нет в списке меню)
Ответить с цитированием
  #10 (permalink)  
Старый 23.03.2020, 07:45
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от Mytnyi Посмотреть сообщение
Суть вся в том что и во вкладах Физические лица и Юридические лица в меню второго уровня попадаются одинаковые ссылки, например, такие как: "Контакты".


И еще весь этот блок хедара у меня подключен на все страницы через:

<?php
include_once "head.php";
?>

то есть, все ссылки, классы и тп. не поменять.
А я еще раз спрашиваю, как организовано взаимодействие с сервером?
При переходе с вкладки на вкладку и на каждый пункт на сервере меню полностью генерится новая страница?
А как генерится нужный хедар? Он тоже зависит от куков?
Но это не совсем правильно. Как уже писал Malleys, невозможно будет запомнить ссылку на страницу или отослать ее кому то, т.к. нужных куков не будет.
Здесь нужно использовать адреса
Например
site.ru?tab=yur&men=doc
site.ru?tab=phys&men=cat

Это и на сервере разобрать можно (get запросы) и браузер разберет, если нужно (url.search)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот тени элемента в сторону курсора на javascript Miracle5 Общие вопросы Javascript 1 20.03.2018 14:37
Как удолить cookie через javascript shtopor Javascript под браузер 5 22.03.2011 23:10
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
обращение к cookie из JavaScript Atrox Элементы интерфейса 5 24.04.2009 09:29