Хоризонталното меню трябва да се превърта наляво и надясно, ако броят на елементите се увеличи

Хоризонталното меню в моя уебсайт излиза извън страницата (водещо до хоризонтален скролер, който изглежда много зле).

Имам динамично меню, ако броят на елементите (опциите в менюто) се увеличи, то преминава границата и изгасва. Искам да използвам jQuery, където, ако броят на елементите се увеличи, ще покаже икони (стрелки наляво и надясно). При щракване върху тези икони - менюто трябва да се превърта наляво и надясно.

HTML:

<div class="wrapperClass">
<div id="mainContainerClass">
<!-- Horizontal Menu Starts Here -->
    <div id="menuContainer">
    <ol id="menuList">
      <li><div id="popupmenu"><a  href="/bgpage1.html" ><span>Menu Item 1</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage2.html" ><span>Menu Item 2</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage3.html" ><span>Menu Item 3</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage4.html" ><span>Menu Item 4</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage5.html" ><span>Menu Item 5</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage6.html" ><span>Menu Item 6</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage7.html" ><span>Menu Item 7</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage8.html" ><span>Menu Item 8</span></a></div>  </li>
      <li><div id="popupmenu"><a  href="/bgpage9.html" ><span>Menu Item 9</span></a></div>  </li>
      </ol>  
    </div>
</div>

CSS:

.wrapperClass { width:1000px;   margin: 0px auto;   padding:0px;}
div#mainContainerClass { margin:0px auto; width:990px;}
div#menuContainer {background:url(/menu_bg.png) repeat-x; height:38px; margin:0px auto; clear:both;}
ol#menuList {list-style: none;    margin: 0;    padding: 0; font-weight:bold;   font-size:12px; color:#EFF4F5;  padding:11px 0 0 0px;   margin:0 0 0 13px;  }
ol#menuList a {    background:  url(/tabs.png); display: block;height:26px; padding: 0 0 0 10px;    text-decoration: none;  text-align:center;  color:#EFF4F5;}
ol#menuList a:hover {    background-position: 0 -52px;}
ol#menuList a:hover span {    background-position: 100% -52px;}
ol#menuList li {    float: left;    margin: 0 1px 0 0;}
ol#menuList li.current a {    background-position: 0 -26px;    color: #fff;    font-weight: bold;   height:26px;    color:#000;}
ol#menuList li.current span {    background-position: 100% -26px;}
ol#menuList span {    background: url(/tabs.png) 100% 0;    display: block;    line-height: 2.2em;    padding-right: 10px;}
#popupmenu div{     position: absolute; visibility: hidden; min-width:100px;    margin: 0;  padding: 0; background: #0e3d95;    border: 1px solid #0e3d95;}
#popupmenu div a    {           position: relative;     display: block;     margin: 0px auto;       padding: 5px 10px;      width: auto;        height:16px;        white-space: nowrap;        text-align:left;        font-weight:bold;       text-decoration: none;      background: #EAEBD8;        color: #154aa4;     font-size:11px;
    background:url(/bg_popupmenu.png) repeat-x top left;        }
#popupmenu div a:hover  {   background: #11439d;        color: #FFF;}

Втори пример:

    <div id="secondMenue" >
<a href="/bgpage1a.html" class="othermenu">Sec Item 1</a>  | 
<a href="/bgpage1b.html" class="active">Sec Item 2</a>  |
<a href="/bgpage1c.html" class="othermenu">Sec Item 3</a> |
<a href="/bgpage1d.html" class="othermenu"> Sec Item 4</a>  |
<a href="/bgpage1e.html" class="othermenu">Sec Item 5</a> 
</div>
#secondMenue{background:url(/othermenu.png)  repeat-x top center; width:975px;height:36px; margin:0px auto;font-size:11px;color:#004990; padding:10px 10px 0 5px;  text-decoration:none}
a.othermenu:link{font-size:12px;color:#004990;
padding:0 10px 0 10px;text-decoration:none;font-weight:normal;}
a.othermenu:visited{font-size:12px;color:#004990;padding:0 10px 0 10px;text-decoration:none;}
a.othermenu:hover{font-size:12px; font-weight:normal;color:#000;padding:0 10px 0 10px;text-decoration:none;}
a.othermenu:active {font-size:12px;color:#004990;padding:0 10px 0 10px;font-weight:bold;text-decoration:none;}

Имам това оформление по-долу, за което трябва да приложа въртележка. Молим ви да погледнете. Не мога да променя това, тъй като оформлението на менюто се изобразява по този начин

'<div>
    <table>
        <tr>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 1</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 2</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 3</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 4</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 5</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 6</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 7</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 8</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 9</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 10</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 11</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 12</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 13</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 14</span></a></td></tr></table></td>
            <td><table><tr><td><a href="/bg#"><span>Menu Option 15</span></a></td></tr></table></td>
        </tr>
    </table>
  </div>' 

person user1199842    schedule 27.01.2014    source източник
comment
Моля, споделете текущия си код, ако искате пример ... покажете усилията си поне с вашия HTML и CSS.   -  person DaniP    schedule 27.01.2014
comment
трябва да публикувате някои кодове, преди да можем да ви помогнем. И за предпочитане в jsfiddle   -  person Chanckjh    schedule 27.01.2014
comment
Въпросите, изискващи код, трябва да демонстрират минимално разбиране на проблема, който се решава. Включете опитаните решения, защо не са проработили и очакваните резултати. Вижте също: Контролен списък с въпроси за Stack Overflow.   -  person Paulie_D    schedule 27.01.2014
comment
Благодаря на всички ви. Добавих код във въпроса си. моля, проверете и ми помогнете.   -  person user1199842    schedule 28.01.2014


Отговори (1)


Трябваше да изпратите код между другото .. във всеки случай може да се наложи да използвате

overflow:hidden

така че нямате лента за превъртане

Ето пълен пример за цигулка на JS за това, за което мислите според това, което разбирам, и ето кодовата страница

Това, което направих, са два CSS случая за менюто, за да превключвате между тях с jQuery windows.resize()

CSS

body {font-family:Arial, Helvetica, sans-serif; font-size:12px;}

.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 15px;
  padding-right: 15px;
}

.menu {width:100%; overflow:auto;list-style: none; height:32px; white-space:nowrap}
.menu li {height:32px; background:#eee; margin-left:5px; padding:5px; float:left }
.menu.text li {width:200px;}
.menu.icons li {width:32px; background:#ffcc00}
.menu.icons li a{text-indent: -9999px; display:inline-block}

@media (min-width: 768px) {
  .container {
    width: auto;
  }
}
@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}

jQuery

$(function () {
    var win = $(window);

    win.bind(
    'resize',
    function () {
        setMenu();
    }
).trigger('resize');

});

    function setMenu() {
        var _menu = $('#menu').width();
        var _width = (Math.floor(_menu));
        if (_width < 1025) {
            $('#menu').removeClass("text").addClass("icons");
        } else {
            $('#menu').removeClass("icons").addClass("text");
        }
    }

И HTML

<div class="container">
    <ul id="menu" class="menu text">
        <li class="nav">
            <a class="navtab" href="/bg#">Item one</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item two</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item three</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item four</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item five</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item six</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item seven</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item eight</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item nine</a>
        </li>
        <li class="nav">
            <a class="navtab" href="/bg#">Item ten</a>
        </li>
    </ul>

Друго решение

Add a jQuery carousel .. I have added one here for your code example

Актуализация:

Според последната ви актуализация и ако нямате други притеснения, можете да използвате RenderMode, за да промените менюто на ASP.NET от таблица в списък

<asp:Menu ID="YourMenu" runat="server" Orientation="Horizontal" CssClass="menu" RenderingMode="List" >
person hsobhy    schedule 27.01.2014
comment
Благодаря ти hsobhy. Опитах това, но в моя случай менюто се увеличава хоризонтално. Не ми трябва скролер, трябва да има икони за превъртане на менюто ми наляво/надясно. Добавих код във въпроса си. Моля те, провери. - person user1199842; 28.01.2014
comment
защо тогава не използвате някакъв тип jQuery въртележки .. Добавих един тук за вашия примерен код fiddle.jshell.net/ek472/3/show и тук е кодовата страница fiddle. jshell.net/ek472/3 - person hsobhy; 28.01.2014
comment
Много благодаря. Наистина помогна. Но в моя случай използвам ‹asp:menu›, което изобразява менюто в режим на таблица. Не можем да използваме списък. Редактирах въпроса си. Моля, проверете последната част от въпроса ми, където имам оформлението на таблицата, към което трябва да приложим въртележка. Опитах се да използвам вашия код, но той създава проблем, тъй като моето оформление е таблица. Молим ви да проверите това веднъж. Благодарим за подкрепата. - person user1199842; 01.02.2014