Как сделать переход по ссылки при нажатии на пункт меню?
Делается сайт на платформе Tilda. Имеется стандартное меню с выпадающим второго уровня. Не приложу ума как сделать так, что бы при наведении на основной пункт меню открывалось меню второго уровня, а при нажатии — переходить на основную страницу раздела.
Отслеживать
задан 9 авг 2020 в 15:50
Ivan Kisin Ivan Kisin
145 1 1 серебряный знак 11 11 бронзовых знаков
25 мая 2021 в 9:49
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Берем открываем документацию Тильды и видим два варианта решения
Вариант 1. Использование встроенных элементов
Под списком пунктов меню нажмите на кнопку «Добавить пункты второго уровня» — напротив пунктов меню появятся иконки в виде знака «+». Нажмите на «+» для добавления пункта подменю Укажите название пункта и ссылку
Вариант 2. Использование блока ME601
Блок ME601 позволяет добавить подразделы к пунктам основного меню. Как это работает:
Добавьте на страницу блок ME601 В блоке МЕ601 пропишите ссылку вида #submenu:more В основном меню в поле ссылка, напротив пункта, к которому вы хотите сделать подразделы, укажите #submenu:more. Примечание: «#submenu:more» может быть любым словом, например: #submenu:portfolio или #submenu:aboutus
Пункты меню второго уровня будут показываться при наведении в формате выпадающего меню. В мобильных версиях меню будет открываться по тапу.
Сам пункт основного меню кликабельным не будет. Если нужно чтобы на нем была ссылка, продублируете этот пункт в выпадающем меню.
Как сделать переход по ссылкам в HTML?
Всем привет!
Структура меню index.html выглядит вот так:
С главной страницы меня работает и ссылки открываются, при переходе на новый линк там выбираешь «Меню» (index.html) тоже все переходит. Но если выбрать другие ссылки то не переходит и пишет 404! Помогите, в чем проблема?
P.S. в на других страницах такая структура меню!
P.P.S.
Код меню ast.html
- Вопрос задан более трёх лет назад
- 1455 просмотров
Плавное перемещение между блокам на веб-странице
Как правило при создании посадочных страниц (landing pages), на них размещается довольно много информации. Я нашел довольно удобный способ навигации по landing page, о чем и расскажу в этой статье.
Обычно меню, размещаемое на посадочной странице, – горизонтальное, а контент разделен на блоки. Казалось бы, нет ничего сложного в организации перемещения от блока к блоку: нужно присвоить идентификаторы к блокам и добавить их значения в ссылки меню. Однако, хотелось бы добавить странице динамичности, а посетителям — удобства. Поэтому, поступим следующим образом: зафиксируем блок с меню вверху страницы и обеспечим плавное перемещение по ней при взаимодействии со ссылками из меню.
Чтобы все это правильно работало, необходимо создать страницу, согласно схеме, показанной на рисунке.
Для фиксации верхнего меню, применим к элементу следующие CSS-правила:
header
Чтобы блок с меню не закрывал блоки с контентом, сделаем у первого блока ( section#block1 ) отступ сверху. Он должен быть равен высоте элемента .
section#block1
На данный момент мы имеем вполне рабочую страничку, но при клике по ссылкам переход к блокам осуществляется сразу. Хотелось бы сделать так, чтобы переход от блока к блоку осуществлялся плавно. Этим сейчас и займемся. Нам поможет небольшой скрипт на jQuery. Обратите внимание, что версия библиотеки jQuery должна быть младше 1.9, иначе скрипт работать не будет.
Я подключил jQuery 1.8.3 с сайта code.jquery.com
После подключения jQuery перейдем непосредственно к скрипту: разместим его в разделе страницы, или в отдельном JS-файле и подключим к нашей странице.
/*плавный переход к нужным блокам на странице*/ $('nav a').on('click',function () < elementClick = $(this).attr("href"); $.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase()); // вычитаем высоту «шапки» destination = $(elementClick).offset().top-145; if($.browser.safari || $.browser.chrome)< $('body').animate( < scrollTop: destination >, 1100 ); >else< $('html').animate( < scrollTop: destination >, 1100 ); > return false; >);Если мы все сделали правильно и нигде не ошиблись, то получили ожидаемый эффект. При клике по ссылкам переход от одного блока к другому будет происходить плавно, причем неважно в каком месте страницы вы «находитесь» в данный момент. Происходит все это благодаря функции animate() библиотеки jQuery. Таким образом, казалось бы простой скрипт придает странице «изюминку», а благодаря тому, что меню всегда доступно, посетителю становится удобнее перемещаться по странице.
Не работает меню перехода на другие страницы?
2 В смысле переопределять? Его никто даже не трогал. Или я тебя просто не понимаю. Я всего лишь думал что инпутом у тебя пользователи выбирают страну :в следствие чего у тебя в столбец land таблицы dle_users заноситься двухбуквенный код стран.
Ещё сделал выбор страны проживания, который заносится скриптом в стандартный DLE-тег
в виде кода 249 стран списка ISO 3166-1 alpha-2 Поэтому этим кодом:
if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); >Заменил этот двухбуквенный код на название страны
3 Тогда тебе нужно:$result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $resultArray = array(); while ($row = $result->fetch_assoc()) { $country = $row['land']; $user_count = $row['user_count']; $country_counts[$country] = $user_count; > foreach ($country_counts as $country => $user_count) { $resultArray[] = array( 'Страна' => $country, 'Количество пользователей' => $user_count ); >Результат запроса сохраняется в переменной $result. Далее создается пустой массив для хранения данных $resultArray = array(); И далее внутри цикла foreach в этот массив записывается каждый элемент массива $country_counts в виде массива с ключами страна и количество пользователей. Наверное это то что тебе как раз надо
Sinoid | Как сделать вывод статистики общего коли . 18
Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:53rewenas, Спасибо. Но:
1. $iso_countries будет содержать только коды. Названия стран потом будет выводить скрипт.
2. нельзя переопределять. Он мне нужен сам по себе как доп. поле каждого юзера. Туда заносится выбор страны юзером и оттуда отображается страна и флаг рядом с аватаром юзера в его комментах и в профиле.
3. На выходе из PHP мне нужен только сортированный (или нет) массив ненулевых количеств юзеров по каждой стране. Далее этот массив будет обрабатываться скриптом через библиотеку Chart.js , чтобы выводить диаграмму по всем странам. Bootstrap не использую. Про графическое представление списка на странице статов можешь не думать. Лучше сделай комментарии в коде PHP или здесь, что там происходит хотя бы в основной логике алгоритма.rewenas | Как сделать вывод статистики общего коли . 18
rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 16:211 Создать в engine/data/ конфигурационный файл country-configuration.php с массивом ключей, представляющими коды стран и их значения.
"Андорра", 'AE' => "Объединенные Арабские Эмираты", 'AF' => "Афганистан", // Здесь надо добавить все оставшиеся 245 стран из нужных 249. Их очень много и добавлять очень долго, я не стал 'ZW' => "Зимбабве", ); ?>2 Создать через систему плагинов или просто так в engine/modules/ файл с названием country.php
include_once ENGINE_DIR . "/data/country-configuration.php"; $tpl->load_template('users-country.tpl'); $tpl->result['users-country'] = dle_cache( "users-country_", $tpl->result['users-country'], true); if (!$tpl->result['users-country']) { $result = $db->query("SELECT land, COUNT(*) AS user_count FROM " . USERPREFIX . "_users WHERE land != '' GROUP BY land"); $country_counts = array(); while( $row = $db->get_row($result) ) { $country = $row['land']; $user_count = $row['user_count']; if (isset($iso_countries[$country])) { $country_name = $iso_countries[$country]; $tpl->set('{land>', $country_name); > else { $tpl->set('{land>', 'Код страны не найден'); > $tpl->set('{user-count>', $user_count); $tpl->compile('users-country'); > $tpl->clear(); create_cache( "users-country_", $tpl->result['users-country'], true ); > echo $tpl->result['users-country']; ?>3 В папке вашего шаблона создать новый users-country.tpl файл. ( Стили в нем написаны просто для примера, их необходимо перенести в свой CSS файл вашего шаблона. Можно их изменять или добавлять новые, делая оформление на ваш вкус и цвет.)
4 В шаблоне stats.tpl вставить строку подключения {include file="/engine/modules/country.php">
rewenas | Как сделать вывод статистики общего коли . 18
rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:51Не знаю насколько конечно это правильно, но я вижу это в голове у себе немного по другому. Завтра постараюсь реализовать
Sinoid | Как сделать вывод статистики общего коли . 18
Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 01:11rewenas, Понятно, что в статистику нет смысла выводить страны, которые никто не выбрал. Но ожидаю, что за несколько месяцев работы моего глобального научного сайта наберутся юзеры из около 60-80 стран. Всё равно много переменных выводить нужно. Допустим, внутри PHP считаем и формируем теги только тех стран zz, где > 0, заносим их в массив, сортируем по убыванию, а на страницу статистики выдаём список рейтинга из пар zz: . Как это всё реализовать в PHP?
rewenas | Как сделать вывод статистики общего коли . 18
rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:32Можно например вывести только те страны что пользователи отметили у себя и посчитать в них суммарное количество пользователей. Причем сделать это отдельно подключаемым шаблоном, который отдельной строкой можно подключить в шаблоне статистики.
rewenas | Как сделать вывод статистики общего коли . 18
rewenas
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
Вчера, 00:30Sinoid | Как сделать вывод статистики общего коли . 18
Sinoid
Как сделать вывод статистики общего количества пользователей по каждому значению доп. поля?
18-11-2023, 21:30rewenas, А что делать? Есть какое-то другое решение. Ну и что, это лишь временные переменные в виде тегов.
- Sign In with Apple для DLE 14 2
- Модуль парсер ссылки с донора и з… 0
- Модификация аватарок DLE 16.1 27
- Модуль - Парсер статей и интеграц… 0
- Добавить поддержку для … 4
- Как обрезать название статьи 1
- Скрипт автозаполнения полей 3
- Парсер/граббер или конвертация БД 1
- Добавление дополнительного функци… 1
- Реализовать адекватную загрузку а… 4
- Запоминание открытой вкладки и со… 0
- Авторизация пользователей через Т… 0
- GeoIP - показ информации в зависи… 0
- Push-уведомление через OneSignal.… 0
- Giphy for comments (TinyMCE) 4
- Множественные опросы - модуль Mul… 0
- Расширенные закладки 0
- Расширение возможностей аккаунта … 0
- ChatGPT Driver 2
- Country Filter 0
Предыдущая запись


