Решено Выпадающее меню при открытой вкладке

Статус
В этой теме нельзя размещать новые ответы.

alekamisleforma

Проверенные
Сообщения
159
Реакции
22
Баллы
1,715
Привет) Проблема заключается в том, что если страница открыта, то выпадающее меню у кнопки, отвечающей за эту страницу, не работает. Как это можно исправить? Мне это нужно потому, что подменю я скрыл.

стиль стандартный
Безымянный.png
 
Вообще то вопрос по стилю задается в тему стиля xenForo Default Style , а по вопросу, что вы там наизменяли нам не известно, возможно это и есть последствия. Ссылку дали б чтоли, так как на стандартном этого(то что у вас) нет.
 
Вообще то вопрос по стилю задается в тему стиля xenForo Default Style , а по вопросу, что вы там наизменяли нам не известно, возможно это и есть последствия. Ссылку дали б чтоли, так как на стандартном этого(то что у вас) нет.
Нет, никаких последствий нет. Это так по стандарту устроено. Даже на этом форуме если вкладка открыта, то выпадающего меню в ней нет, а мне нужно как-то его прилепить, но не понимаю как.

Безымянный.png

Подменю я скрыл в EXTRA.css вот так


.navTabs .navTab.selected .tabLinks {
display: none;
}
 
Выпадающее меню нужно при активной вкладке, а не только при неактивной, как по стандарту) На мобильные устройства плевать.
*****************


Никто не знает что ли? У меня есть одно решение. Я прогугли и нашел. Но там стили слетают и непонятно что нужно править в navigations.css, чтобы вернуть все на место. Если вообще в navigations.css, а не где-то еще.

Найденное решение такое:
В шаблоне navagition для home, forum и прочих вкладок, которые вы хотите изменить подобным образом, меняем $extraTab.selected на $tabs.selected.

Например, для home код после внесенных изменений такой
HTML:
<!-- extra tabs: home -->
        <xen:if is="{$extraTabs.home}">
        <xen:foreach loop="$extraTabs.home" key="$extraTabId" value="$extraTab">
            <xen:if is="{$extraTab.linksTemplate}">
                <li class="navTab {$extraTabId} {xen:if $tabs.selected, 'selected', 'Popup PopupControl PopupClosed'}">
         
                <a href="{$extraTab.href}" class="navLink">{$extraTab.title}<xen:if is="{$extraTab.counter}"><strong class="itemCount"><span class="Total">{$extraTab.counter}</span><span class="arrow"></span></strong></xen:if></a>
                <a href="{$extraTab.href}" class="SplitCtrl" rel="Menu"></a>
             
                <div class="{xen:if {$tabs.selected}, 'tabLinks', 'Menu JsOnly tabMenu'} {$extraTabId}TabLinks">
                    <div class="primaryContent menuHeader">
                        <h3>{$extraTab.title}</h3>
                        <div class="muted">{xen:phrase quick_links}</div>
                    </div>
                    {xen:raw $extraTab.linksTemplate}
                </div>
            </li>
            <xen:else />
                <li class="navTab {$extraTabId} {xen:if $tabs.selected, 'selected', 'PopupClosed'}">
                    <a href="{$extraTab.href}" class="navLink">{$extraTab.title}<xen:if is="{$extraTab.counter}"><strong class="itemCount"><span class="Total">{$extraTab.counter}</span><span class="arrow"></span></strong></xen:if></a>
                    <xen:if is="{$tabs.selected}"><div class="tabLinks"></div></xen:if>
                </li>
            </xen:if>
        </xen:foreach>
        </xen:if>
 
Шаблон navigation:
Строку(#100):
<li class="navTab members {xen:if $tabs.members.selected, 'selected', 'Popup PopupControl PopupClosed'}">
заменить на
<li class="navTab members Popup PopupControl PopupClosed">

Строку(#105):
<div class="{xen:if {$tabs.members.selected}, 'tabLinks', 'Menu JsOnly tabMenu'} membersTabLinks">
на
<div class="Menu JsOnly tabMenu membersTabLinks">
 
Alex Fair, сейчас попробую)

Попробовал. Судя по всему, это распространяется только на вкладку "Пользователи". Для нее работает. Но результат такой же, как и в описанном мной варианте выше. Стили для этой вкладки слетают... Что нужно править, чтобы их вернуть?

вот исправленный код для "members", если потребуется
HTML:
<!-- members -->
        <xen:if is="{$tabs.members}">
            <li class="navTab members Popup PopupControl PopupClosed">
           
                <a href="{$tabs.members.href}" class="navLink">{$tabs.members.title}</a>
                <a href="{$tabs.members.href}" class="SplitCtrl" rel="Menu"></a>
               
                <div class="Menu JsOnly tabMenu membersTabLinks">
                    <div class="primaryContent menuHeader">
                        <h3>{$tabs.members.title}</h3>
                        <div class="muted">{xen:phrase quick_links}</div>
                    </div>
                    <ul class="secondaryContent blockLinksList">
                    <xen:hook name="navigation_tabs_members">
                        <li><a href="{xen:link members}">{xen:phrase notable_members}</a></li>
                        <xen:if is="{$xenOptions.enableMemberList}"><li><a href="{xen:link members/list}">{xen:phrase registered_members}</a></li></xen:if>
                        <li><a href="{xen:link online}">{xen:phrase current_visitors}</a></li>
                        <xen:if is="{$xenOptions.enableNewsFeed}"><li><a href="{xen:link recent-activity}">{xen:phrase recent_activity}</a></li></xen:if>
                        <xen:if is="{$canViewProfilePosts}"><li><a href="{xen:link find-new/profile-posts}">{xen:phrase new_profile_posts}</a></li></xen:if>
                    </xen:hook>
                    </ul>
                </div>
            </li>
        </xen:if>

Если конкретно, то слетают настройки стиля только для выбранной вкладки.
 
Тут куда хуже, чем ожидалось. То, что хотим добиться, приведет к правке CSS стилей вместе с JS скриптом(по моему мнению). Вообще не очень затея.
Насчет правки строчек выше - отлично работает на стандартном шаблоне, но не подсвечивает активную вкладку(минус в этом будет, скорее всего).
Если прям нужно идеально, то это сказка)

Насчет других вкладок:
просто ищи что-то вроде {xen:if $tabs.forums.selected, 'selected', 'Popup PopupControl PopupClosed'} и меняй на Popup PopupControl PopupClosed

Хотел попробовать, думал легенькое, оказалось проблема побольше :-)
 
Последнее редактирование модератором:
Это я уже понял) Проверял на центральной вкладке. Тоже работает.


Насчет правки строчек выше - отлично работает на стандартном шаблоне, но не подсвечивает активную вкладку(минус в этом будет, скорее всего).
Да, в этом и вся проблема. Что в методе из гугла, что в твоем, наблюдается один и тот же косяк. Активная вкладка не подсвечивается. Неясно пока как ее решить. В navigation.css копался, но так ничего и не нашел.
 
Если сделать "подсвеченной"(это не так тяжело, на самом деле, но...), то JS скрипт не даст открыть содержимое вкладки.
Блин. Вроде такое, на первый взгляд, простое исправление, а оказалось имеет множество подводных камней...
 
Чел, я всё таки нашел решение. Моя ошибочная теория о JS запутала... думал всё управление происходит там, а оказывается, что просто проблема в CSS стилях и твоей затеей.
Но тут придется чуть-чуть повозиться:
1. Находим navigation.css и находим строки:
Код:
.navTabs .navTab.selected .navLink
{
position: relative;
...
}
и заменяем(или удаляем) 3 строчку на: /*position: relative;*/(т.е. комментируем)

2. Ниже находим(в этом же файле):
Код:
.navTabs .navTab.selected .SplitCtrl
    {
        display: none;
    }
и так же комментируем, либо удаляем.

3. В шаблоне navigation(по примеру members):
<li class="navTab members {xen:if $tabs.members.selected, 'selected', 'Popup PopupControl PopupClosed'}">
меняем на
<li class="navTab members {xen:if $tabs.members.selected, 'selected'} Popup PopupControl PopupClosed">

В нём же ищем ниже:
<div class="{xen:if {$tabs.members.selected}, 'tabLinks', 'Menu JsOnly tabMenu'} membersTabLinks">
меняем на
<div class="Menu JsOnly tabMenu membersTabLinks">

К следующим так же. Если прям не можешь, скидывай шаблон, скажу.

На стандартном шаблоне всё нормально. Если как-то сбивается стиль, то я скорее всего забыл что-то, т.к. у меня уже утро за окном.
 
Последнее редактирование:
Да! Огромное спасибо!) Для "Пользователи" попробовал, работает) Только почему-то у меня вот что прописано, если смотреть через "Исследование элемента" в Фаерфоксе


Код:
.navTabs .navTab.selected .SplitCtrl {
    display: none;
}

Если отключить display: none, то все работает) Возможно это какой-то косяк с моей стороны из-за прошлых исправлений, я поищу.


К следующим так же. Если прям не можешь, скидывай шаблон, скажу.

На стандартном шаблоне всё нормально. Если как-то сбивается стиль, то я скорее всего забыл что-то, т.к. у меня уже утро за окном.

У меня тоже утро уже) С остальными я попробую сам разобраться, может получится. Но если что, то спрошу... надеюсь ответишь)

**********************
2. Ниже находим(в этом же файле):
Код:
.navTabs .navTab.selected .SplitCtrl
    {
        display: none;
    }
и так же комментируем, либо удаляем.

Блин. Я почему-то вот это сразу не заметил. Тоже видимо утро сказывается) Теперь все в порядке)

***********************

Почему-то цвет текста выбранной вкладки не меняется. А на тех вкладках, которые изменениями затронуты небыли, меняется. В чем может быть проблема?

Нашел. В navigation.css нужно было еще и вот это скрыть

Код:
.navTabs .navTab.PopupClosed .navLink
    {
        color: @primaryLighter;
    }
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу