我正在使用本机 jquery ui 菜单并试图让它滚动。我发现它实际上内置了这种行为(有点)。我不确定这是不是故意的。
/////////////////////////////////// HTML ////////////////////////////////////////////
<div id="container">
<ul id="menu">
<div id="scrollup">
<span class="ui-icon ui-icon-triangle-1-n"></span>
</div>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
<li><a href="#">Item 6</a></li>
<li><a href="#">Item 7</a></li>
<li><a href="#">Item 8</a></li>
<li><a href="#">Item 9</a></li>
<li><a href="#">Item 10</a></li>
<li><a href="#">Item 11</a></li>
<li><a href="#">Item 12</a></li>
<li><a href="#">Item 13</a></li>
<li><a href="#">Item 14</a></li>
<li><a href="#">Item 15</a></li>
<li><a href="#">Item 16</a></li>
<li><a href="#">Item 17</a></li>
<li><a href="#">Item 18</a></li>
<li><a href="#">Item 19</a></li>
<li><a href="#">Item 20</a></li>
<li><a href="#">Item 21</a></li>
<li><a href="#">Item 22</a></li>
<div id="scrolldown">
<span class="ui-icon ui-icon-triangle-1-s"></span>
</div>
</ul>
</div>
/////////////////////////////////// CSS ////////////////////////////////////////////
#container {
height: 350px;
background: #ccc;
}
#menu {
max-height: 75%;
width: 100px;
padding: 25px 0;
overflow: hidden;
margin: 20px;
}
#menu #scrollup,
#menu #scrolldown {
position: absolute;
width: 16px;
height: 16px;
top: 15px;
left: 113px;
}
#menu #scrolldown {
top: 311px;
}
/////////////////////////////////// JQUERY //////////////////////////////////////////
$('#menu').menu().removeClass('ui-menu-icons');
这是我能想到的最好的,我对此并不满意。我不得不增加顶部和底部填充以允许更大的可滚动区域。这本身并不可怕,但并不理想。我最关心的是向我的用户展示这个列表是可滚动的。我已经使用 jquery ui 图标破解了一些显示箭头,但感觉不太对劲。通过将它们放在右侧,它们会模仿滚动条,但您不能单击它们。
理想情况下,我希望箭头居中,但是当您将它们悬停时,列表仍然可以滚动。通过使用跨度,我可以实现定位,但是文本在下面可见,看起来很糟糕。通过使用 div 它看起来更干净,但是整个区域都不能滚动。
我正在寻找一种更好、更清洁、更直观的方式来实现这一点。