Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как убрать выпадающее меню их меню....

00 голосов
7
Это код верхнего, стандартного меню, как убрать выпадающее а оставить только верхнее...
<?
$sMenu = ''; for($i=0; $i<count($MENU_ITEMS); $i++) { $MENU_ITEM = $MENU_ITEMS[$i]; extract($MENU_ITEM); if($SELECTED) $clrtext = 'topmenuact'; else $clrtext = 'topmenu'; $sMenu .= ''; $sMenu .= '<table border="0" cellspacing="0" cellpadding="0" height="27"><tr>'; $sMenu .= '<td onmouseover="show('.$i.')" onmouseout="hidden('.$i.')"><nobr> '.$TEXT.' </nobr>'; $sMenu .= ''; if($i<count($MENU_ITEMS)-1) $sMenu .= '[img]/bitrix/templates/[/img]'; else $sMenu .= ''; $sMenu .= '
 
';

$popup_menu = new CMenu("left");
$popup_menu->Init($LINK);
if(count($popup_menu->arMenu) > 0)
{
$popup_menu->template = "/bitrix/templates/".SITE_TEMPLATE_ID."/popup.menu_template.php";
$sMenu .= '<div style="position:relative; width: 100%;">';
$sMenu .= '<div onMouseOver="show('.$i.')" onMouseOut="hidden('.$i.')" id="menu'.$i.'" style="visibility: hidden; position: absolute; z-index: +1; top: 0px;" >';
$sMenu .= $popup_menu->GetMenuHtmlEx();
$sMenu .= '</div></div>';
}
$sMenu .= '</td>';
}
$sMenu .= 'Рисунок</tr></table>';
?>
спросил 13 Май, 13 от Killerus (160 баллов)

7 Ответы

00 голосов
Код
$sMenu .= '<td onmouseover="show('.$i.')" onmouseout="hidden('.$i.')"><a href="'.$LINK.'" class="'.$clrtext.'"><nobr> '.$TEXT.' </nobr></a></td>';

заменить на
Код
$sMenu .= '<td><a href="'.$LINK.'" class="'.$clrtext.'"><nobr> '.$TEXT.' </nobr></a></td>'; 
ответил 13 Май, 13 от Pomnep (13,960 баллов)
00 голосов
Спасибо!
ответил 14 Май, 13 от Killerus (160 баллов)
00 голосов
Не могу найти подобный код в новой редакции Битрикса. Как убрать выпадание в моем случае??
Очень, конечно, хотелось бы использовать именно выпадающее, но заказчику также необходим флеш-баннер, а меню работает нормально - поверх флешки - только в IE. В остальных же браузерах никакие <PARAM NAME=wmode VALUE=transparent> не спасают.
Поэтому приходится идти на крайние меры и тупо убирать выпадающие пункты.
Подскажите, пожалуйста!
ответил 24 Июль, 13 от Kalipsso (140 баллов)
00 голосов
На вкладке "Редактировать сайт", в настройках компонента, в качестве подменю укажите несуществующий тип или выберите другой шаблон, который не выводит подменю.
ответил 27 Окт, 13 от sickmind (4,660 баллов)
00 голосов
Александр Черкасов
спасибо! Как все элементарно! А я думал js-файл уже удалить.
А про флеш vs яваскрипт это так и есть - в фоксе и опере косяк?
ответил 31 Янв, 14 от Kalipsso (140 баллов)
00 голосов
Попробуйте добавить wmode="transparent" в embed, чтобы получилось что-то вроде:
Код
<embed src="/flash/banner/2.swf" quality="high" bgcolor="#ffffff" width="173" height="173" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" />
Вдруг поможет :)
ответил 20 Май, 14 от sickmind (4,660 баллов)
00 голосов
Александр Черкасов
и помогло! спасибо еще раз!
Раз эта проблема решена, у меня очередная серия вопросов, простите за назойливость:
1. почему меню выпадает только на главной странице, а при переходе по меню (в какую-нибудь папку) - меню не выпадает?
В корне лежит меню типа Top, во вложенных папках (пунктах верхнего меню) - меню типа bottom. Была попытка вставить меню типа top и во вложенные папки, но из-за этого пункты меню стали работать неправильно.

2. Вообще у меня стоит задача сделать меню "выплывающим". Хочу использовать библиотеку mootools, функцию Fx.Slide. Смотрю файл script.js в шаблоне меню
Код
var jshover = function() { 
    var sfEls = document.getElementById("horizontal-multilevel-menu").getElementsByTagName("li"); 
    for (var i=0; i<sfEls.length; i++)  
    { 
        sfEls[i].onmouseover=function() 
        { 
            this.className+=" jshover"; 
        } 
        sfEls[i].onmouseout=function()  
        { 
            this.className=this.className.replace(new RegExp(" jshover\\b"), ""); 
        } 
    } 
} 

if (window.attachEvent)  
    window.attachEvent("onload", jshover); 


и не могу понять, куда мне вставить мою функцию?
ответил 16 Сен, 14 от Kalipsso (140 баллов)

Похожие вопросы

0 голосов
3 ответов
спросил 24 Фев, 14 от salo (840 баллов)
0 голосов
3 ответов
0 голосов
3 ответов
спросил 16 Окт, 13 от Dayran (840 баллов)
0 голосов
3 ответов
спросил 14 Сен, 13 от NightEvil (120 баллов)
0 голосов
1 ответ