Jump to content

Раскрывающееся меню категорий


Recommended Posts

Всем привет!

Подскажите пожалуйста как сделать, чтобы в левом меню отображались только категории, а при наведение на них открывались подкатегории

Типа как вот здесь 

Link to post
Share on other sites

пользуйтесь поиском для версии 2.x есть готовое решение  ;) и вопросик откуда взяли эту картинку? а то меня терзают смутные сомнения на счет откуда она у вас...

Link to post
Share on other sites

Вот сайт, http://mybootstrap.ru/components/#dropdowns

 

тут все подробно описано что и как тебе остается только подогнать вывод категорий в верстку и все

я не особо разбираюсь в этом(

поделитись кодом, инструкцией.. пожалуйста

Link to post
Share on other sites
  • 3 weeks later...

Вот сайт, http://mybootstrap.ru/components/#dropdowns

 

тут все подробно описано что и как тебе остается только подогнать вывод категорий в верстку и все

Подскажите пожалуйста,  в каком файле править надо?

Link to post
Share on other sites

Всем привет!

Подскажите пожалуйста как сделать, чтобы в левом меню отображались только категории, а при наведение на них открывались подкатегории

Типа как вот здесь 

В index.tpl находите блок меню каталога, заменяете его этим кодом:

			<!-- Меню каталога -->
                        
                         <div id="cssmenu">
                         
                         {* Рекурсивная функция вывода дерева категорий *}
                         {function name=categories_tree}
                         {if $categories}
                         <ul>
                         {foreach $categories as $c}
                         {* Показываем только видимые категории *}
                         {if $c->visible}
                         <li class='has-sub'>	
                         {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
                         <span><a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a></span>
                         {categories_tree categories=$c->subcategories}
                         </li>	
                         {/if} 
                         {/foreach}
                         </ul>
                         {/if}
                         {/function}
                         {categories_tree categories=$categories}
                         </div>

			<!-- Меню каталога (The End)-->

Дальше идём в стили и добавляем следующее:

/* Сброс стилей */
#cssmenu > ul {
  list-style: none;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  line-height: 1;
}
/* Контейнер меню */
#cssmenu > ul {
  display: block;
  position: relative;
  width: 200px;
  -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Firefox */
  -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Safari и Chrome */
  box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Параметры тени */
}
/* Элементы списка содержащие ссылки */
#cssmenu > ul li {
  display: block;
  position: relative;
  margin: 0;
  padding: 0;
  width: 100%;
}
/* Основные стили ссылок */
#cssmenu > ul li a {

  /* Позиционирование */
  display: block;
  position: relative;
  margin: 0;
  border-top: 1px dotted #fff;
  border-bottom: 1px dotted #ffffff;
  padding: 11px 20px;

  /* Типографика */
  font-family: Helvetica, Arial, sans-serif;
  color: #292929;
  text-decoration: none;
  text-transform: uppercase;
  text-shadow: 0 1px 0 #fff;
  font-size: 13px;
  font-weight: 300;

  /* Фон и эффекты */
  background: #ffffff;
}
/* Скругление углов первой ссылки меню и субменю */
#cssmenu > ul li:first-child > a {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  border-top: 0;
}
/* Скругление углов последней ссылки меню и субменю */
#cssmenu > ul li:last-child > a {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom: 0;
}
/* Стили ссылок при наведении */
#cssmenu > ul li a:hover,
#cssmenu > ul li:hover > a {
  color: #ffffff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  background: #3b7cff;
  background: -webkit-linear-gradient(#3b7cff, #085aff);
  background: -moz-linear-gradient(#3b7cff, #085aff);
  background: linear-gradient(#3b7cff, #085aff);
  border-color: transparent;
}
/* Индикатор наличия субменю */
#cssmenu > ul .has-sub > a::after {
  content: '';
  position: absolute;
  top: 16px;
  right: 10px;
  width: 0px;
  height: 0px;
  /* Создаём стрелки используя свойство border */

  border: 4px solid transparent;
  border-left: 4px solid #292929;
}
/* Такая же стрелка, только темнее для создания эффекта тени */
#cssmenu > ul .has-sub > a::before {
  content: '';
  position: absolute;
  top: 17px;
  right: 10px;
  width: 0px;
  height: 0px;
  /* Создаём стрелку используя свойство border */

  border: 4px solid transparent;
  border-left: 4px solid #fff;
}
/* Меняем цвет стрелки при наведении курсора */
#cssmenu > ul li > a:hover::after,
#cssmenu > ul li:hover > a::after {
  border-left: 4px solid #fff;
}
#cssmenu > ul li > a:hover::before,
#cssmenu > ul li:hover > a::before {
  border-left: 4px solid rgba(0, 0, 0, 0.25);
}
/* Субменю */
#cssmenu > ul ul {
  position: absolute;
  left: 100%;
  top: -9999px;
  padding-left: 5px;
  opacity: 0;
  width: 200px;
  -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Firefox */
  -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Safari и Chrome */
  box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Параметры тени */
  /* Эффект затухания */

  -webkit-transition: opacity 0.3s ease-in;
  -moz-transition: opacity 0.3s ease-in;
  transition: opacity 0.3s ease-in;
}
#cssmenu > ul ul li a {
  font-size: 12px;
}
/* Показываем субменю при наведении курсора на родительскую ссылку */
#cssmenu > ul li:hover > ul {
  top: 0px;
  opacity: 1;
  z-index: 1000;
}

Стили поправьте под свой шаблон. В целом всё почти так как на Вашей превьюшке.

Link to post
Share on other sites

У меня почему то меню обрезается справа и снизу 

Видимо потому что не выполнен последний пункт

Стили поправьте под свой шаблон.

Скрины в студию

Link to post
Share on other sites

Стало еще хуже, обрезать стало больше

в стилях найдите

 

#left {...}

и замените

 

overflow: hidden;

 

на

overflow: visible;

В стилях меню ширину поправьте на 260px (в разделах "Контейнер меню" и "Субменю"). Как сделаете, выложите скрины снова.

Link to post
Share on other sites

Только теперь вопрос: как сделать чтоб нажав на категорию выводил подкатегории на главной, а он вместо этого выводит полный ассортимент товара этой категории???

Link to post
Share on other sites

Только теперь вопрос: как сделать чтоб нажав на категорию выводил подкатегории на главной, а он вместо этого выводит полный ассортимент товара этой категории???

Подробнее можно? Не совсем понятно что именно Вы хотите. Аккордеон?

Link to post
Share on other sites

Подробнее можно? Не совсем понятно что именно Вы хотите. Аккордеон?

Допустим я нажимаю на категорию "малая быт техника", и должны на главной странице вывестись все подкатегории данной категории (т.е. категории второго уровня), потом допустим нажимаю на подкатегорию, должны вывестись её подкатегории (т.е. уже категории 3 уровня), а вместо этого всего, когда я нажимаю сейчас на категорию любую, то выводятся все товары этой кактегории в главной странице.

Link to post
Share on other sites

Допустим я нажимаю на категорию "малая быт техника", и должны на главной странице вывестись все подкатегории данной категории (т.е. категории второго уровня), потом допустим нажимаю на подкатегорию, должны вывестись её подкатегории (т.е. уже категории 3 уровня), а вместо этого всего, когда я нажимаю сейчас на категорию любую, то выводятся все товары этой кактегории в главной странице.

Дайте ссылку на сайт, я Вас вообще не понимаю :)

Link to post
Share on other sites

Дайте ссылку на сайт, я Вас вообще не понимаю :)

Мой сайт на компе  :) Вот на примере этого сайта тогда раскажу http://www.dns-shop.ru

Допустим, нажмите на категорию "Комплектующие к ПК", Вам на главной странице вадаются подкатегории ( с несколькими товарами), а у меня вместо этого выдаются все товары....

Link to post
Share on other sites

Мой сайт на компе  :) Вот на примере этого сайта тогда раскажу http://www.dns-shop.ru

Допустим, нажмите на категорию "Комплектующие к ПК", Вам на главной странице вадаются подкатегории ( с несколькими товарами), а у меня вместо этого выдаются все товары....

Это Вам, батенька, к специалистам за таким решением обращаться нужно. В этом я Вам не смогу помочь.

Link to post
Share on other sites

Это Вам, батенька, к специалистам за таким решением обращаться нужно. В этом я Вам не смогу помочь.

Ладно, спасибо на том чем помогли )

Link to post
Share on other sites
  • 3 months later...

Не могу понять, как мне "вылечить" эту фигню.

У меня  

 

#content {...}
 

 

  идёт раньше, чем

 

#left {...}
 

Как мне сделать, что бы при ресайзе браузера #left не падал вниз ?

Link to post
Share on other sites

Вот сайт, http://mybootstrap.ru/components/#dropdowns

 

тут все подробно описано что и как тебе остается только подогнать вывод категорий в верстку и все

Там если подцепить скрипт и стили, то сам сайт сильно изменяется снешне из-за этих стилей...

Link to post
Share on other sites

Там если подцепить скрипт и стили, то сам сайт сильно изменяется снешне из-за этих стилей...

 

А кто мешает выдрать только те стили которые нужны для менюшки?

Link to post
Share on other sites
  • 2 months later...

Как сделать отступ от низа всего сайта, у меня 25 подкатегорий, при наведении на главные появляются подкатегории так вот самая нижняя упирается в низ окна браузера, как сделать отступ?

Link to post
Share on other sites
  • 1 month later...

В index.tpl находите блок меню каталога, заменяете его этим кодом:

			<!-- Меню каталога -->
                        
                         <div id="cssmenu">
                         
                         {* Рекурсивная функция вывода дерева категорий *}
                         {function name=categories_tree}
                         {if $categories}
                         <ul>
                         {foreach $categories as $c}
                         {* Показываем только видимые категории *}
                         {if $c->visible}
                         <li class='has-sub'>	
                         {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
                         <span><a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a></span>
                         {categories_tree categories=$c->subcategories}
                         </li>	
                         {/if} 
                         {/foreach}
                         </ul>
                         {/if}
                         {/function}
                         {categories_tree categories=$categories}
                         </div>

			<!-- Меню каталога (The End)-->

Дальше идём в стили и добавляем следующее:

/* Сброс стилей */
#cssmenu > ul {
  list-style: none;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  line-height: 1;
}
/* Контейнер меню */
#cssmenu > ul {
  display: block;
  position: relative;
  width: 200px;
  -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Firefox */
  -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Safari и Chrome */
  box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Параметры тени */
}
/* Элементы списка содержащие ссылки */
#cssmenu > ul li {
  display: block;
  position: relative;
  margin: 0;
  padding: 0;
  width: 100%;
}
/* Основные стили ссылок */
#cssmenu > ul li a {

  /* Позиционирование */
  display: block;
  position: relative;
  margin: 0;
  border-top: 1px dotted #fff;
  border-bottom: 1px dotted #ffffff;
  padding: 11px 20px;

  /* Типографика */
  font-family: Helvetica, Arial, sans-serif;
  color: #292929;
  text-decoration: none;
  text-transform: uppercase;
  text-shadow: 0 1px 0 #fff;
  font-size: 13px;
  font-weight: 300;

  /* Фон и эффекты */
  background: #ffffff;
}
/* Скругление углов первой ссылки меню и субменю */
#cssmenu > ul li:first-child > a {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  border-top: 0;
}
/* Скругление углов последней ссылки меню и субменю */
#cssmenu > ul li:last-child > a {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom: 0;
}
/* Стили ссылок при наведении */
#cssmenu > ul li a:hover,
#cssmenu > ul li:hover > a {
  color: #ffffff;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  background: #3b7cff;
  background: -webkit-linear-gradient(#3b7cff, #085aff);
  background: -moz-linear-gradient(#3b7cff, #085aff);
  background: linear-gradient(#3b7cff, #085aff);
  border-color: transparent;
}
/* Индикатор наличия субменю */
#cssmenu > ul .has-sub > a::after {
  content: '';
  position: absolute;
  top: 16px;
  right: 10px;
  width: 0px;
  height: 0px;
  /* Создаём стрелки используя свойство border */

  border: 4px solid transparent;
  border-left: 4px solid #292929;
}
/* Такая же стрелка, только темнее для создания эффекта тени */
#cssmenu > ul .has-sub > a::before {
  content: '';
  position: absolute;
  top: 17px;
  right: 10px;
  width: 0px;
  height: 0px;
  /* Создаём стрелку используя свойство border */

  border: 4px solid transparent;
  border-left: 4px solid #fff;
}
/* Меняем цвет стрелки при наведении курсора */
#cssmenu > ul li > a:hover::after,
#cssmenu > ul li:hover > a::after {
  border-left: 4px solid #fff;
}
#cssmenu > ul li > a:hover::before,
#cssmenu > ul li:hover > a::before {
  border-left: 4px solid rgba(0, 0, 0, 0.25);
}
/* Субменю */
#cssmenu > ul ul {
  position: absolute;
  left: 100%;
  top: -9999px;
  padding-left: 5px;
  opacity: 0;
  width: 200px;
  -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Firefox */
  -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Safari и Chrome */
  box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Параметры тени */
  /* Эффект затухания */

  -webkit-transition: opacity 0.3s ease-in;
  -moz-transition: opacity 0.3s ease-in;
  transition: opacity 0.3s ease-in;
}
#cssmenu > ul ul li a {
  font-size: 12px;
}
/* Показываем субменю при наведении курсора на родительскую ссылку */
#cssmenu > ul li:hover > ul {
  top: 0px;
  opacity: 1;
  z-index: 1000;
}

Стили поправьте под свой шаблон. В целом всё почти так как на Вашей превьюшке.

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...