CSS:制作水平滚动菜单

صفي*_*صفي 8 html javascript css jquery

我想在我的应用程序屏幕上添加一个菜单.该菜单将具有菜单图标,当按下向左或向右箭头时,该菜单图标是水平可滚动的一个菜单.根据菜单屏幕,菜单应滚动到该菜单屏幕的菜单图标.

例:


 <   menu1     |  menu2  |   menu3   >
Run Code Online (Sandbox Code Playgroud)

假设有6个菜单图标,一次可见3个.按下右箭头,它应该一次滚动一个项目.

如果我的屏幕与菜单4相关,则必须定位menu4.


 <   menu4     |  menu5  |   menu6   >
Run Code Online (Sandbox Code Playgroud)

此外,每个菜单项都应该是可点击的.

请让我知道,我怎样才能做到这一点.

更新 具有MouseOver的js

<script type="text/javascript">
    $(function () {
        var div = $('div.sc_menu'),
             ul = $('ul.sc_menu'),
             ulPadding = 15;
        var divWidth = div.width();
        div.css({ overflow: 'hidden' });
        var lastLi = ul.find('li:last-child');
        div.mousemove(function (e) {
            var ulWidth = lastLi[0].offsetLeft + lastLi.outerWidth() + ulPadding;

            var left = (e.pageX - div.offset().left) * (ulWidth - divWidth) / divWidth;
            div.scrollLeft(left);
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

点击这里

UPDATE3

雅虎的导航

更新4

这是从db build with ul&li中获取的动态菜单.如果李的宽度超过屏幕宽度,我只想在左侧和右侧使用箭头滚动额外的li,如果有的话.

Zwo*_*ord 4

看看这个小提琴:

http://jsfiddle.net/kzQFQ/49/

$(document).ready(function () {
$('.right').click(function () {
    var position = $('.container').position();
    var r=position.left-$(window).width()
    $('.container').animate({
        'left': ''+r+'px'
    });
});    

$('.left').click(function () {
    var position = $('.container').position();
    var l=position.left+$(window).width()
    if(l<=0)
    {
    $('.container').animate({
        'left': ''+l+'px'
    });
    }
});    
});
Run Code Online (Sandbox Code Playgroud)

  • 我添加了一个更新。如果这不是您要查找的内容,请截取屏幕截图。将其添加到 imgur 并选择您想要的区域。 (2认同)
  • 我在雅虎主页上没有看到任何与您在这里要求的内容类似的内容 (2认同)