javascript - 响应式水平滚动菜单

标签 javascript jquery html css mobile-website

http://healthunit.com一旦您从移动电话设备上查看它,它就会在屏幕顶部有一个干净的水平滚动菜单。我正在尝试模仿完全相同的功能,这要归功于我正在使用大量导航元素重新设计的网站。

要求:

  1. 左右滚动点击选项
  2. 居中列表项选项在空间中居中
  3. 一次只能看到一个列表项
  4. 水平滚动和响应
  5. 单击列表中的最后一个或第一个选项将转到列表中的第一个选项或最后一个选项

我当前这部分的 html 是:

<nav id="sub" class="clearfix">
  <ul class="wrapper">
    <a href="#"><li>Estimate</li></a>
    <a href="#"><li>About</li></a>
    <a href="#"><li>Customer Information</li></a>
    <a href="#"><li>Financing</li></a>
    <a href="#"><li>Careers</li></a>
    <a href="#"><li>Locate Us</li></a>
    <a href="#"><li>Inspiration</li></a>
  </ul>
</nav>

当前附加到它的 CSS 是:

nav#sub {
  background: #004173;
  background: linear-gradient(to bottom, #004173 0%,#014f8d 100%);
  background: -moz-linear-gradient(top, #004173 0%, #014f8d 100%);
  background: -ms-linear-gradient(top, #004173 0%,#014f8d 100%);
  background: -o-linear-gradient(top, #004173 0%,#014f8d 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#004173), color-stop(100%,#014f8d));
  background: -webkit-linear-gradient(top, #004173 0%,#014f8d 100%);
  border-bottom: #00325a solid 3px;
  box-shadow: 0 4px 6px 0 #BFBFBF;
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#004173', endColorstr='#014f8d',GradientType=0 );
  webkit-box-shadow: 0 4px 6px 0 #BFBFBF;
}

#sub ul {
  text-align: center;
}

#sub ul li {
  padding: 10px 3.3%;
}

#sub a {
  color: #fff;
  font-size: 10pt;
  font-weight: 400;
  text-decoration: none;
}

#sub ul a:hover li {
  background: #007FEB;
}

最佳答案

所以,我终于找到了您要找的东西:

fiddle : http://jsfiddle.net/fzXMg/2/

CSS 和 HTML 在 Fiddle 中...

JS:

$(function(){
    var state = 0;
    var maxState = 6;
    var winWidth = $(window).width();
    $(window).resize(function(){
        winWidth = $(window).width();
        $('.box,.container_element').width(winWidth-100);
    }).trigger('resize');
    $('#lefty').click(function(){
        if (state==0) {
           state = maxState;
        } else {
           state--;
        }
        $('.container_element').animate({scrollLeft:((winWidth-100)*state)+'px'}, 800);
    });
    $('#righty').click(function(){
        if (state==maxState) {
           state = 0;
        } else {
           state++;
        }
        $('.container_element').animate({scrollLeft:((winWidth-100)*state)+'px'}, 800);
    });
});

这再次使用了 jQuery。

关于javascript - 响应式水平滚动菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24784571/

相关文章:

javascript - 从 div Javascript 中删除随机移动

javascript - 在打开(事件)移动下拉菜单时将标题的位置从固定位置更改为相对位置?

jquery - 使用其他链接调用 fancybox gallery

javascript - 试图让 Bootstrap 分页工作

java - 单选按钮和 request.getParameter

javascript - tinyMCE 在 IE8 中丢帧

php - 如何使用 jQuery 在屏幕上绘制字母

javascript - 在 Javascript 中使用正则表达式查找并更改 div

html - <tr> 不取后代 <span> 的高度

javascript - 如何在猫头鹰日期时间中选择日期后自动关闭日历?