1. HTML结构及样式准备
说起网页设计,不得不说导航菜单就是个重要的东西,有了它找起信息就方便多了!想做个横向滑动的导航怎么办?其实很简单,先搞定 HTML 框架,用 ul 和 li 标签搭出菜单选项的轮廓。接着,用 CSS 把尺寸啊、颜色啊这些外形调一调,让整个导航看着舒心就 OK 了!
在HTML结构中,可以使用类似以下代码片段:
html <li>Home</li> <li>About</li><li>Services</li>
<li>Portfolio</li>
<li>Contact</li>接着,在CSS样式表中对导航菜单进行设置:
css .navigation { list-style: none; padding:0;.nav-container { overflow-x: scroll; white-space: nowrap; } .nav { display: inline-block; list-style-type: none; margin: 0; padding: 0; width: 100%; } .nav li { display: inline-block; text-align: center; width: 120px; } .nav li a { display: block; padding: 10px; text-decoration: none; }margin:0;
}
.navigation li {
display: inline-14511f2f5564650d129ca7cabc333278;
margin-right: 20px;
.navigation li a {
text-decoration: none;
color:#333;
.navigation li a:hover {
color:#ff6600;
搞定这个html和css后,咱们就有底气做侧滑!
2. jQuery实现横向滑动效果$('.nav-arrow').on('click', function() { var direction = $(this).data('direction'); var distance = $('.nav li:first-child').outerWidth(); if (direction === 'prev') { $('.nav-container').animate({scrollLeft: '-=' + distance}); } else { $('.nav-container').animate({scrollLeft: '+=' + distance}); } });搞定HTML布局和CSS美化之后,就该上手jQuery做navList滑动效果了。我们要在"click"(点击)这个事件上面操作,只需你轻轻一点那个箭头图标,navList就会水平地展示那些藏起来的东东!
咱们开始给 jQuery加点儿看门狗功能!只要有人点了左或右,咱们就做个记录,看看他到底点了几次。然后根据这个记录,咱们再决定怎么推导导航菜单。以下就是简化版的代码样式表哦:
javascript在那个超级简单的”.arrow”上点一下,就会生效~
这个方向,就是从你点击的地方自动获取。
var distance = 100;//滑动距离
if (direction ===’left’){
导航条慢慢向左滚动,距离是我们想要的长度。
要是方向是”右”的话,那就…
导航栏动起来,慢慢的向右挪动!
}
});
$('.nav-container').on('scroll', function() { var distance = $('.nav li:first-child').outerWidth(); var scrollLeft = $(this).scrollLeft(); if (scrollLeft === 0) { $('.nav-arrow.prev').addClass('disabled'); } else { $('.nav-arrow.prev').removeClass('disabled'); } if (scrollLeft + distance >= $('.nav').outerWidth()) { $('.nav-arrow.next').addClass('disabled'); } else { $('.nav-arrow.next').removeClass('disabled'); } });加点点碰器就可以改变图标按钮方向,点击箭头钮,导航菜单的选项就能跟着变化,这样用着多方便呀。
3.交互效果优化
为了让你用着更舒服,除了原有的横向滑动,咱们还增加了点互动元素!比如,当你手指滑到导航菜单两边的时候,旁边的左右箭头会自己不见,这样就不怕你乱划~
咱可以小偷懒儿下,直接瞅着导航菜单翻页定位,然后顺带给箭头按钮开个开关就成。比如这样子:
点’.导航’然后鼠标滚轮,就会触发下面的函数。
var $this =$(this),
滚动到左边,就利用现在的滚动位置,就是$this的左滑。
把元素滚动宽度设定为$this.get(0).scrollWidth
width =$this.width();
if (scrollLeft ===0){
让我们来给”箭头向左”类加点儿禁用(disabled)属性。
对了你试试看,把那个滚动栏往左移,让浏览区变得跟滚滚宽度一样宽,这时候也是这种情况。
把”.arrow-right”的那个按钮变灰。
function initNav() { var distance = $('.nav li:first-child').outerWidth(); var navWidth = $('.nav').outerWidth(); var containerWidth = $('.nav-container').outerWidth(); if (navWidth > containerWidth) { $('.nav-arrow.next').removeClass('disabled'); } $('.nav-arrow').css('top', ($('.nav').outerHeight() / 2 - $('.nav-arrow').outerHeight() / 2)); $('.nav li').each(function() { var itemWidth = $(this).outerWidth(); if (itemWidth > distance) { distance = itemWidth; } }); $('.nav li').each(function() { $(this).css('width', distance + 'px'); }); } initNav();} else {
别管’.arrow-left,’.arrow-right’那茬了,直接删掉那个“停用”的样式就成
只需在原来的代码上添加相关的操作,轻轻一滑,就可以轻松关闭那些苦恼的按钮。这样做当然会让我们的导航感觉更加容易和舒适!
4.初始化函数设置
要让浏览网页的时候看得见导航菜单和箭头按钮,咱们得首先搞清楚初始化这两者的办法。在初始化函数里面,检测导航栏的宽度与容器宽度的关系,以及是否需要开启/关闭箭头按钮。
下面是一个简化版本的初始化函数示例:
function initNav(){
我们就是用导航来算出宽度的数值,并取名叫navWidth。
把容器宽度设为$(“.container”)的宽度
如果导航栏宽度比容器的宽还要大,就这样做…
点向右箭头,去掉”不可用”的标签。
把’.arrow-left’和’.arrow-right’加上禁用标记呗!
//其他初始化设置…
你只要动动手点一下`initNav()`这个小小的魔法按钮,网页上面熟悉的箭头和菜单就能弹出来!等它加载完了以后,就能够按照你的想法变得漂漂亮亮。
5.总结与展望
今儿咱们就来说说咋样用jQuery做出像网红那样的横滑导航栏~先搞定HTML和样式,接着用jQuery搞定鼠标点击和提高用户感受,最后再用初始化函数为它们打扮一番。过程简单得让你惊呆了!
下次要用的话,可以根据需要试试看,比如在项目里加点转场特效啥的,或者调整响应式设计,这样手机用户也能用得顺畅。期望这个方法对你提升网页互动效果有所帮助!
评论0